¿Cuál es el equivalente de PyOpenGL de
#define BUFFER_OFFSET(i) (reinterpret_cast(i)) glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_SHORT, BUFFER_OFFSET(offset))
Si el desplazamiento es 0, entonces
glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_SHORT, None)
funciona, pero no puedo averiguar cómo especificar un desplazamiento distinto de cero en un objeto de búfer.
Se supone que debes pasar un puntero void ctypes
, que puede construirse mediante:
ctypes.c_void_p(offset)
Parece que hay una opción más específica de PyOpenGL utilizando una clase VBO
, y conseguí algunas versiones de PyOpenGL de acuerdo con esto .
Puedes usar la clase OpenGL.arrays.vbo.VBO para eso:
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)