Skip to content

Instantly share code, notes, and snippets.

@tterrag1098
Created August 12, 2017 18:23
Show Gist options
  • Save tterrag1098/b7b2a6963bd1327ddc576e2225e35ae1 to your computer and use it in GitHub Desktop.
Save tterrag1098/b7b2a6963bd1327ddc576e2225e35ae1 to your computer and use it in GitHub Desktop.
// Helpful buffer methods I'm using
public long sizeOf(FloatBuffer buf) {
return buf.capacity() * 4L;
}
int vPosition = 0;
int vColor = 1;
int vTex = 2;
FloatBuffer vertBuf = Buffers.from(verts);
FloatBuffer colorBuf = Buffers.from(colors);
FloatBuffer uvBuf = Buffers.from(uvs);
glBindVertexArray(vboptr);
if (indexed) {
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eboptr);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.toArray(), GL_DYNAMIC_DRAW);
}
glBindBuffer(GL_ARRAY_BUFFER, bufptr);
glBufferData(GL_ARRAY_BUFFER, Buffers.sizeOf(vertBuf) + Buffers.sizeOf(colorBuf) + Buffers.sizeOf(uvBuf), GL_DYNAMIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, vertBuf);
glBufferSubData(GL_ARRAY_BUFFER, Buffers.sizeOf(vertBuf), colorBuf);
glBufferSubData(GL_ARRAY_BUFFER, Buffers.sizeOf(vertBuf) + Buffers.sizeOf(colorBuf), uvBuf);
glVertexAttribPointer(vPosition, 3, GL_FLOAT, false, 0, 0);
glVertexAttribPointer(vColor, 4, GL_FLOAT, false, 0, Buffers.sizeOf(vertBuf));
glVertexAttribPointer(vTex, 2, GL_FLOAT, false, 0, Buffers.sizeOf(vertBuf) + Buffers.sizeOf(colorBuf));
glEnableVertexAttribArray(vPosition);
glEnableVertexAttribArray(vColor);
glEnableVertexAttribArray(vTex);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment