Giter Club home page Giter Club logo

Comments (5)

SpartanJ avatar SpartanJ commented on June 22, 2024

Original comment by Martín Lucas Golini (Bitbucket: SpartanJ, GitHub: SpartanJ).


Can you print SOIL_last_result after the image load and also print the width, height and channels returned?
Are you sure that the path provided is correct?
Can you try to load the texture using SOIL_load_OGL_texture?
May be you forgot to set the GL_UNPACK_ALIGNMENT to 1?

I need a little more info,
Thanks!

from soil2.

SpartanJ avatar SpartanJ commented on June 22, 2024

Original comment by David Amador (Bitbucket: DJ_Link, ).


Yeah it does works using SOIL_load_OGL_texture, but I was using SOIL_load_image so I could get the width and height right away. SOIL_load_OGL_texture returns correct width and height but the image gets all white.
Alignment pack is set to 1 so maybe the problem is just the SOIL_load_OGL_texture function itself.

it returns "Image loaded"

from soil2.

SpartanJ avatar SpartanJ commented on June 22, 2024

Original comment by Martín Lucas Golini (Bitbucket: SpartanJ, GitHub: SpartanJ).


I think you forgot to set the min and mag filter,
i thought that:

#!c

    GLint min_filter = filter_to_glint(GFX->get_image_min_filter());
    GLint mag_filter = filter_to_glint(GFX->get_image_mag_filter());

was setting the filters, but it seems that not.
So, after glTexImage2D you must do something like:

#!c

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
// Also set the clamp mode
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );

That should solve the problem.

If SOIL_load_OGL_texture then SOIL_load_image it's working ( since it use that function to load the image, also it's returning the size and channels, that means that it was loaded ).

But, i recommend you to load the texture with SOIL_load_OGL_texture, and to get the image dimensions you could use: stbi_info.

It should be something like:

#!c

#include <SOIL2/stb_image.h>
...
int w, h, c;

if ( stbi_info( filename.c_str(), &w, &h, &c ) )

{
    unsigned int textureid = SOIL_load_OGL_texture( filename.c_str(), SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, 0 );
}

Now that i see this, i think it would be handy to have a load texture method that also returns you the image info, or at least expose stbi_info as SOIL_image_info.

But there's also a simpler solution for this:

#!c

int width, height, channels;

unsigned char* data =
    SOIL_load_image( filename.c_str(), &width, &height, &channels, SOIL_LOAD_AUTO );

if ( data )
{
    unsigned int textureid = SOIL_create_OGL_texture( data, &width, &height, channels, SOIL_CREATE_NEW_ID, 0 );
}

SOIL_free_image_data( data );

Hope this helps,
Regards,
Martín

from soil2.

SpartanJ avatar SpartanJ commented on June 22, 2024

Original comment by David Amador (Bitbucket: DJ_Link, ).


That last solution you gave me works perfectly. My old code, even adding the glTexParameteri still give me the same problem but it's probably something else on my end.
Thank you for all the help, sorry for cluttering this with something that wasn't even a bug after all.

from soil2.

SpartanJ avatar SpartanJ commented on June 22, 2024

Original comment by Martín Lucas Golini (Bitbucket: SpartanJ, GitHub: SpartanJ).


Glad it worked!
And no problem, i'm here to help too!

from soil2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.