Since OpenGL 3.1 core profile, vertex indices must be passed in a buffer object bound to ELEMENT_ARRAY_BUFFER. It seems that glDrawElementBaseVertex is working like a charm when sourcing indices from client memory (using Buffer backing arrays of ints or shorts) which is ok when using the compatibility profile but it does not work with "index buffer object". There is no way to force the method to understand its "Buffer indices" argument as an offset into the current buffer object bound to ELEMENT_ARRAY_BUFFER. Actually it would be nice to have such a signature (like we have for glDrawElements): glDrawElementsBaseVertex(int mode, int count, int type, long indices_buffer_offset, int basevertex) Other methods should follow the same paradigm: glDrawElementsInstanced glDrawRangeElementsBaseVertex glDrawElementsInstancedBaseVertex
agreed - thank you! actually all 8 are of kind buffer object: BufferObjectKind Element glDrawElements BufferObjectKind Element glDrawElementsBaseVertex BufferObjectKind Element glDrawElementsInstanced BufferObjectKind Element glDrawElementsInstancedBaseInstance BufferObjectKind Element glDrawElementsInstancedBaseVertex BufferObjectKind Element glDrawRangeElementsBaseVertex BufferObjectKind Element glDrawRangeElements BufferObjectKind Element glDrawRangeElementsBaseVertex .. will add this ASAP
fixed