Skip to content

Instantly share code, notes, and snippets.

@olamedia
Created September 24, 2012 19:44
Show Gist options
  • Save olamedia/3777912 to your computer and use it in GitHub Desktop.
Save olamedia/3777912 to your computer and use it in GitHub Desktop.
for (int n = 0; n < vertexCount; n++) {
int tex = (int) buffer.get(vertexSize * n + 9);
if (!materials.containsKey(tex)) {
materials.put(tex, 1);
} else {
materials.put(tex, materials.get(tex) + 1);
}
}
for (Integer m : materials.keySet()) {
int matVertCount = materials.get(m);
final GLArrayDataServer interleaved = GLArrayDataServer.createFixedInterleaved(9, GL2.GL_FLOAT, false,
matVertCount, GL.GL_STATIC_DRAW);
interleaved.addFixedSubArray(GLPointerFunc.GL_VERTEX_ARRAY, 3, GL.GL_ARRAY_BUFFER);
interleaved.addFixedSubArray(GLPointerFunc.GL_COLOR_ARRAY, 4, GL.GL_ARRAY_BUFFER);
interleaved.addFixedSubArray(GLPointerFunc.GL_TEXTURE_COORD_ARRAY, 2, GL.GL_ARRAY_BUFFER);
arrays.put(m, interleaved);
}
for (int n = 0; n < vertexCount; n++) {
int m = (int) buffer.get(vertexSize * n + 9);
final GLArrayDataServer interleaved = arrays.get(m);
interleaved.putf(buffer.get(vertexSize * n + 0));
interleaved.putf(buffer.get(vertexSize * n + 1));
interleaved.putf(buffer.get(vertexSize * n + 2));
interleaved.putf(buffer.get(vertexSize * n + 3));
interleaved.putf(buffer.get(vertexSize * n + 4));
interleaved.putf(buffer.get(vertexSize * n + 5));
interleaved.putf(buffer.get(vertexSize * n + 6));
interleaved.putf(buffer.get(vertexSize * n + 7));
interleaved.putf(buffer.get(vertexSize * n + 8));
}
for (Integer m : materials.keySet()) {
final GLArrayDataServer interleaved = arrays.get(m);
interleaved.seal(true);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment