某些GL函数的好奇"void*"参数

sgt*_*ale 6 c++ opengl pointers casting

对于OpenGL中的某些函数,必须glVertexAttribPointer()为stride 指定字节偏移量,例如in .起初我会猜到它将是一个像整数一样的正常数值.但经过检查,我意识到它需要被投入void*(更具体地说GLvoid*).我的问题是:它的意图是什么void*?为什么必须将它用于字节偏移?

Cyn*_*ing 6

glVertexAttribPointer()是Vertex Buffer Objects之前的旧函数.

在VBO之前,您的顶点数据将存储在客户端数组中,您需要在绘制之前将指向数据的指针传递给OpenGL.

当VBO出现时,他们通过允许指针用于传递整数偏移来重新调整此函数.

例如 void* offset = (void*)offsetof(vertexStructName, vertexMemberName);