Hey guys.
So I've been reading OpenGL superbible and trying to learn it.
I managed to get things working until the vbo part, I've been messing around with it but can't get anything but a blank screen...
I have the following texture, position and indices arrays:
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 | static r32 TextureData[] =
{
0, 1,
1, 1,
1, 0,
0, 0,
};
static r32 Size = 200.0f;
static r32 HalfSize = Size/2;
static r32 PositionData[] =
{
-HalfSize, -HalfSize, 0,
HalfSize, -HalfSize, 0,
HalfSize, HalfSize, 0,
-HalfSize, HalfSize, 0,
};
static GLubyte Indices[] =
{
0, 1, 2,
0, 2, 3,
};
static GLuint Vbos[3];
|
Then inside my InitScene function which is called once at the start of the game:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | glFrontFace(GL_CCW);
glCullFace(GL_BACK);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glGenBuffers(3, Vbos);
glBindBuffer(GL_ARRAY_BUFFER, Vbos[0]);
glBufferData(GL_ARRAY_BUFFER, 4*3*sizeof(GLfloat),
PositionData, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, Vbos[1]);
glBufferData(GL_ARRAY_BUFFER, 4*2*sizeof(GLfloat),
TextureData, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, Vbos[2]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6*sizeof(GLubyte),
Indices, GL_STATIC_DRAW);
|
Finally, my DrawScene function:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | glClearColor(0.2f, 0.2f, 0.2f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(WindowInfo.Width/2, WindowInfo.Height/2, -10);
glBindTexture(GL_TEXTURE_2D, Textures[0]);
glBindBuffer(GL_ARRAY_BUFFER, Vbos[0]);
glVertexPointer(3, GL_FLOAT, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, Vbos[1]);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, Vbos[2]);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0);
glPopMatrix();
|
The textures are loaded once at the start as well, I know they are working properly since I had it working with vertex arrays just before I changed the code to use vertex buffers.
Am I making a silly mistake somewhere?
Thanks.