什么是PyOpenGL的等价物
#define BUFFER_OFFSET(i) (reinterpret_cast<void*>(i))
glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_SHORT, BUFFER_OFFSET(offset))
如果偏移为0,则
glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_SHORT, None)
有效,但我无法弄清楚如何在缓冲区对象中指定非零偏移量。
答案 0 :(得分:8)
你应该传递一个ctypes
无效指针,它可以由以下构造:
ctypes.c_void_p(offset)
似乎有更多PyOpenGL特定选项使用VBO
类,并根据this得到了某些版本的PyOpenGL。
答案 1 :(得分:7)
您可以使用OpenGL.arrays.vbo.VBO类:
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)