I am trying to load and draw texture on a polygon. Here are the two functions I have written:

textures = []

def loadBitmap(fileName):
    global textures 
    #load in the file
    textureSurface = pygame.image.load(fileName)
    textureData = pygame.image.tostring(textureSurface, "RGBX", 1)
    #Bind it to a texture
    textures = glGenTextures(2)
    glBindTexture(GL_TEXTURE_2D, textures[0])
    glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, textureSurface.get_width(), textureSurface.get_height(), 0,
                  GL_RGBA, GL_UNSIGNED_BYTE, textureData )

def drawBitmap(x,y,width,height):
    global textures
    glBindTexture(GL_TEXTURE_2D, textures[0])
    glTexCoord2i(0, 0); glVertex2i(x, y)                   
    glTexCoord2i(1, 0); glVertex2i(x+width, y)          
    glTexCoord2i(1, 1); glVertex2i(x+width, y+height)   
    glTexCoord2i(0, 1); glVertex2i(x,y+height)           

and in the draw function I am calling 'drawBitmap(400,400,256,256)'

the texture file is of 256x256 resolution.

The application I am writing here is 2D.
There is no depth test. It's disabled.
I am getting a gray colored square instead of textured one...?
I am using selection/picking on mouse down.
When ever I click the gray square flicks...? Rest of the drawing is having no problem at all.
In 'loadBitmap' function if I try to load a single texture using  'textures = glGenTextures(1)' I get an error. How do I solve this...?

Best regards.


Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.