@Override public GeometryHandle generateGeometry(int vertices, EGeometryFormatType type, boolean writable, String name) { GeometryHandle vertexBufferId = allocateVBO(type, name); bindGeometry(vertexBufferId); GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertices*type.getBytesPerVertexSize(), writable ? GL15.GL_DYNAMIC_DRAW : GL15.GL_STATIC_DRAW); setObjectLabel(KHRDebug.GL_BUFFER, vertexBufferId.getInternalId(), name + "-vertices"); return vertexBufferId; }
@Override protected void specifyFormat(EGeometryFormatType format) { GL20.glEnableVertexAttribArray(0); if (format.getTexCoordPos() == -1) { GL20.glVertexAttribPointer(0, 2, GL11.GL_FLOAT, false, 0, 0); } else { GL20.glEnableVertexAttribArray(1); int stride = format.getBytesPerVertexSize(); GL20.glVertexAttribPointer(0, 2, GL11.GL_FLOAT, false, stride, 0); GL20.glVertexAttribPointer(1, 2, GL11.GL_FLOAT, false, stride, format.getTexCoordPos()); } }
protected void specifyFormat(EGeometryFormatType format) { if (format.getTexCoordPos() == -1) { if(tex_coord_on) GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY); GL11.glVertexPointer(2, GL11.GL_FLOAT, 0, 0); } else { if(!tex_coord_on) GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY); int stride = format.getBytesPerVertexSize(); GL11.glVertexPointer(2, GL11.GL_FLOAT, stride, 0); GL11.glTexCoordPointer(2, GL11.GL_FLOAT, stride, format.getTexCoordPos()); } tex_coord_on = format.getTexCoordPos() != -1; }