Je tente de plaquer une texture sur une surface via des VBO mais seule la surface blanche s'affiche.

Voilà mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
    static const GLsizeiptr PositionSize = 3* 3 * sizeof(GLfloat);
    static const GLfloat PositionData[] =
    {
        1,1,1,
        1,1,-1,
        -1,1,-1,
    };
 
    static const int BufferSize = 2;
    static GLuint BufferName[BufferSize];
 
    static const GLsizei VertexCount = 3;
    enum
    {
        POSITION_OBJECT = 0,
        TEXTURE_OBJECT = 1
    };
 
    AUX_RGBImageRec * TextImage;
    TextImage = auxDIBImageLoad("green020.bmp");
 
    static const GLsizeiptr TextureSize = 3 * 2 * sizeof(GLfloat);
    static const GLfloat TextureData[] =
    {
        0.0,1.0,
        0.0,0.0,
        1.0,0.0,
    };
 
    glEnable(GL_TEXTURE_2D);
 
    unsigned int TextID;
    glGenTextures(1, &TextID);
    glBindTexture(GL_TEXTURE_2D , TextID);
    glTexImage2D(GL_TEXTURE_2D , 0 , 4 , TextImage->sizeX , TextImage->sizeY , 0 , GL_RGB , GL_UNSIGNED_BYTE , TextImage->data);
    glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_LINEAR );
    glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER , GL_LINEAR );
 
    glGenBuffersARB(1, &BufferName[POSITION_OBJECT]);
    glBindBufferARB(GL_ARRAY_BUFFER_ARB , BufferName[POSITION_OBJECT]);
    glBufferDataARB(GL_ARRAY_BUFFER_ARB , PositionSize , PositionData , GL_STREAM_DRAW_ARB);
 
    glGenBuffersARB(1, &BufferName[TEXTURE_OBJECT]);
    glBindBufferARB(GL_ARRAY_BUFFER_ARB , BufferName[TEXTURE_OBJECT]);
    glBufferDataARB(GL_ARRAY_BUFFER_ARB , TextureSize , TextureData , GL_STREAM_DRAW_ARB);
 
    glBindBufferARB(GL_ARRAY_BUFFER_ARB , BufferName[POSITION_OBJECT]);
    glVertexPointer(3, GL_FLOAT , 0 , 0);
    glBindBufferARB(GL_ARRAY_BUFFER_ARB , BufferName[TEXTURE_OBJECT]);
    glTexCoordPointer(2 , GL_FLOAT , 0 , 0);
 
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
 
    glDrawArrays(GL_TRIANGLES , 0 , VertexCount);
 
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_VERTEX_ARRAY);



j'utilise GLAUX pour charger les images .bmp et ça marche nickel car je l'ai testé sur une méthode classique glBegin()....
Sinon le tout est affiché dans une fenètre SDL et le tout marche lorsque je colore simplement la surface

merci d'avance