It does not render with texture. The triangle and the sphere are rendered with the last-used blue color.
What’s wrong with it? Thanks a lot!
On init:
......
FIBITMAP* tmp = FreeImage_Load(FIF_JPEG,"gstar.jpg",0);
FIBITMAP* img = FreeImage_ConvertTo32Bits(tmp);
FreeImage_Unload(tmp);
glGenTextures( 1, &texture );
glBindTexture(GL_TEXTURE_2D,texture);
glTexImage2D(
GL_TEXTURE_2D, 0, GL_RGBA,
FreeImage_GetWidth(img), FreeImage_GetHeight(img),
0, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8,
FreeImage_GetBits(img) );
printf("generated texture: %d
",texture);
......
On drawing:
......
// draw axis
glBegin(GL_LINES);
glColor3f(1,0,0);
glVertex3d(0,0,0);
glVertex3d(100,0,0);
glColor3f(0,1,0);
glVertex3d(0,0,0);
glVertex3d(0,100,0);
glColor3f(0,0,1);
glVertex3d(0,0,0);
glVertex3d(0,0,100);
glEnd();
// textured triangle
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texture);
glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE);
glBegin(GL_TRIANGLES);
glNormal3d(1,1,1);
glTexCoord2f(0,0);
glVertex3d(5,0,0);
glTexCoord2f(1,0);
glVertex3d(0,5,0);
glTexCoord2f(0,1);
glVertex3d(0,0,5);
glEnd();
glDisable(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texture);
gluSphere(quad,2,32,32);
glDisable(GL_TEXTURE_2D);
......