This is where I create the VBO :
public void generateVBO() {
vertexBufferVertices = 0;
textureBufferVertices = 0;
for (Quad quad : quads) {
if (quad != null) {
for (Vertex3f vert : quad.vertices) {
vertexBufferVertices ++;
}
for (Vector2f vert : quad.textureQuardinates) {
textureBufferVertices ++;
}
}
}
FloatBuffer data = BufferUtils.createFloatBuffer(vertexBufferVertices*3+textureBufferVertices*2);
for (Quad quad : quads) {
if (quad != null) {
for (Vertex3f vert : quad.vertices) {
data.put(vert.x()).put(vert.y()).put(vert.z());
}
for (Vector2f vert : quad.textureQuardinates) {
data.put(vert.x).put(vert.y);
}
}
}
data.flip();
vertexBufferObjectID = GL15.glGenBuffers();
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertexBufferObjectID);
GL15.glBufferData(GL15.GL_ARRAY_BUFFER, data, GL15.GL_STATIC_DRAW);
}
And here is where I render it :
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertexBufferObjectID);
int stride = (3 << 2) + (2 << 2);
int offset = 0;
GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
GL11.glVertexPointer(3, GL11.GL_FLOAT, stride, offset);
offset += (3 << 2);
GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
GL11.glTexCoordPointer(2, GL11.GL_FLOAT, stride, offset);
offset += (2 << 2);
GL11.glDrawArrays(GL11.GL_QUADS, 0, vertexBufferVertices);
GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
Im sorry for bothering you guys for help, but I cant figure out what I’m doing wrong. Im sure its right in front of me.
EDIT :
Should have been more clear, nothing crashes, but its rending strangely. I suspect it is the issue with the stride/offset.