I'm having an issue. I can't seem to locate the source of the problem. I have a simple OpenGL program written in Python using PyOpenGL and PIL. For some reason, my textures appear as they should when my display is in 16bpp mode, but in 32 it appears as a solid green or solid red. I've posted the code. It doesn't appear here *exactly* as it is in the original so it'd be easier to read.
Here's my screen initialization:
glutInit(())
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
glutInitWindowSize(width, height)
self.window = glutCreateWindow(caption)
glutReshapeFunc(self.resize)
glutDisplayFunc(self.renderTask)
glutKeyboardFunc(self.keyPressed)
glutIdleFunc(self.mainTask)
glEnable(GL_TEXTURE_2D)
glClearColor(0.0, 0.0, 0.0, 0.0)
glClearDepth(1.0)
glDepthFunc(GL_LESS)
glEnable(GL_DEPTH_TEST)
glShadeModel(GL_SMOOTH)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0, self.logicalWidth, self.logicalHeight, 0, -1.0, 1.0)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glut Resize callback
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0, self.logicalWidth, self.logicalHeight, 0, -1.0, 1.0)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
Loading the texture
image = Image.open(filename)
image = image.convert('RGBA')
self.width, self.height = image.size
self.id = glGenTextures(1)
glBindTexture(GL_TEXTURE_2D, self.id)
glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
glTexImage2D(GL_TEXTURE_2D, 0, 4, self.width, self.height,
0, GL_RGBA, GL_UNSIGNED_BYTE, image.tostring('raw', 'RGBA'))
Finally, rendering
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glEnable(GL_TEXTURE_2D)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)
glBindTexture(GL_TEXTURE_2D, self.id)
glBegin(GL_QUADS)
glTexCoord2f(0,0); glVertex2f(x, y)
glTexCoord2f(1,0); glVertex2f(x + w, y)
glTexCoord2f(1,1); glVertex2f(x + w, y + h)
glTexCoord2f(0,1); glVertex2f(x, y + h)
glEnd()
glFlush()
glutSwapBuffers()
Thanks in advance