Jump to content
  • Advertisement
Sign in to follow this  
cubicwang

OpenGL glTexImage2D problem

This topic is 4458 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi~ I need Help! I use glTexImage2D() like this. glTexImage2D(GL_TEXTURE_2D, 0, 4, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, pData); The texture on the mesh seems like it just a 8 bit color or 16 bit color, There are color grating on the texture. The same program on MacOSX has no this problem, it just on windows, I test some other opengl program download from the net, they are OK! I dont know why, please help! Thank you!!!!

Share this post


Link to post
Share on other sites
Advertisement
Perhaps it could be the texture filtering? How are you setting that? The texture would appear blocky if you use GL_NEAREST.

You should post more of your code so that we can try and figure out what's wrong.

Share this post


Link to post
Share on other sites
Thank you very much!
I will try to test the filter.
I find a prev topic of this quesion.
They say that because the 3rd param are not matching with the 7th in the glTexImage2D().
I will try both of them, thank you!!!!

Share this post


Link to post
Share on other sites
If use too many textures that out of the video memory, What will the opengl show to me?
The failed of glGenTextures() or the glTexImage2D() failed?
Thank you!

Share this post


Link to post
Share on other sites
Quote:
http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/gl/teximage2d.html
     C SPECIFICATION
void glTexImage2D( GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLsizei height,
GLint border,
GLenum format,
GLenum type,
const GLvoid *pixels )


PARAMETERS

...

internalformat Specifies the number of color components in
the texture. Must be 1, 2, 3, or 4, or one
of the following symbolic constants:
GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12,
GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4,
GL_LUMINANCE8, GL_LUMINANCE12,
GL_LUMINANCE16, GL_LUMINANCE_ALPHA,
GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2,
GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4,
GL_LUMINANCE12_ALPHA12,
GL_LUMINANCE16_ALPHA16, GL_INTENSITY,
GL_INTENSITY4, GL_INTENSITY8,
GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2,
GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10,
GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2,
GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2,
GL_RGBA12, or GL_RGBA16.

...

format Specifies the format of the pixel data. The
following symbolic values are accepted:
GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE,
GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, and
GL_LUMINANCE_ALPHA.

...



The internalformat and format arguments should be valid in your case.

Share this post


Link to post
Share on other sites
Thank you!!!!!
Do you know the answer of my second question?
Thank you very much!
Welcome to China, I will be your cicerone.

Share this post


Link to post
Share on other sites
Quote:
Original post by cubicwang
If use too many textures that out of the video memory, What will the opengl show to me?
The failed of glGenTextures() or the glTexImage2D() failed?
Thank you!


Well, you must be using quite a few textures for that to happen. The driver will first move textures in and out of the graphics card memory and use the main memory, so it should have a lot to go on.

If OpenGL does run out of memory, it will set a GL_OUT_OF_MEMORY error, which means there is not enough memory left to execute the command. It can fail on any call.

You need to get this error with glGetError, and you can use gluErrorString to translate the error code into a more helpful string.

Share this post


Link to post
Share on other sites
Quote:
Original post by cubicwang
Thank you!!!!!
Do you know the answer of my second question?
Thank you very much!
Welcome to China, I will be your cicerone.


hehe, cool. You're welcome.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!