How To Specify Buffer Offset With PyOpenGL
What is the PyOpenGL equivalent of #define BUFFER_OFFSET(i) (reinterpret_cast(i)) glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_SHORT, BUFFER_OFFSET(offset))
Solution 1:
You're supposed to pass a ctypes
void pointer, which can constructed by :
ctypes.c_void_p(offset)
There seems to be a more PyOpenGL specific option using a VBO
class, and gotcha with some versions of PyOpenGL according to this.
Solution 2:
You can use OpenGL.arrays.vbo.VBO class for that:
from OpenGL.arrays import vbo
# data for your buffer
buf = vbo.VBO( [ 1,2,3,4,5,...], target = GL_ELEMENT_ARRAY_BUFFER )
# calls glBindBuffer
buf.bind()
# starts reading at 14-th byte
glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_SHORT, buf + 14)
Post a Comment for "How To Specify Buffer Offset With PyOpenGL"