Original Post
I am trying to load a texture directly into opengl using the DevIL/OpenIL library. The ilutGLLoatImage() returns successfully, but when it tries to draw the image on the screen it just looks white. Any ideas? Thanks, Braden
GLuint ui_textures[100];
void LoadUI_Image(unsigned long index, char *filename)
{
GLuint tmp_texture;
GLint x;
GLint y;
tmp_texture=ilutGLLoadImage(filename);
glGenTextures(1,&ui_textures[index]);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB,ui_textures[index]);
glGetTexLevelParameteriv(GL_TEXTURE_RECTANGLE_ARB,0,GL_TEXTURE_WIDTH,&x);
glGetTexLevelParameteriv(GL_TEXTURE_RECTANGLE_ARB,0,GL_TEXTURE_HEIGHT,&y);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB,0,3,x,y,0,GL_RGB,GL_UNSIGNED_BYTE,&tmp_texture);
glDeleteTextures(1,&tmp_texture);
}
/* ...Inside of function trying to display the texture... */
glBindTexture(GL_TEXTURE_RECTANGLE_ARB,ui_textures[xml[needle].img_index]);
glGetTexLevelParameterfv(GL_TEXTURE_RECTANGLE_ARB,0,GL_TEXTURE_WIDTH,ℑ_size_x);
glGetTexLevelParameterfv(GL_TEXTURE_RECTANGLE_ARB,0,GL_TEXTURE_HEIGHT,ℑ_size_y);
glColor3f(1,1,1);
glEnable(GL_TEXTURE_RECTANGLE_ARB);
glBegin(GL_QUADS);
{
glTexCoord2f(0,0); glVertex2f(x+upperleftX,y+lowerrightY);
glTexCoord2f(0,image_size_y); glVertex2f(x+upperleftX,y+upperleftY);
glTexCoord2f(image_size_x,image_size_y); glVertex2f(x+lowerrightX,y+upperleftY);
glTexCoord2f(image_size_x,0); glVertex2f(x+lowerrightX,y+lowerrightY);
}
glEnd();
glDisable(GL_TEXTURE_RECTANGLE_ARB);