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); |
Partager