C和Java中'glVertexAttributePointer'函数的差异

C和Java中'glVertexAttributePointer'函数的差异,java,opengl,Java,Opengl,当我查看glvertexattributepointer函数的javadoc时,我看到它是“C语言函数的入口点: void glvertexattributepointer(GLuint索引、闪烁大小、格伦类型、GLboolean归一化、GLsizei步长、const void*指针) 除了最后一个参数外,参数之间的对应关系基本上是向前的。“C”版本似乎是合乎逻辑的:必须指定数据,而指针就是最好的。在Java版本中,我更困惑,因为需要一个long整数 谁能解释一下这个long整数如何表示“C”指

当我查看
glvertexattributepointer
函数的javadoc时,我看到它是“C语言函数的入口点:

void glvertexattributepointer(GLuint索引、闪烁大小、格伦类型、GLboolean归一化、GLsizei步长、const void*指针)

除了最后一个参数外,参数之间的对应关系基本上是向前的。“C”版本似乎是合乎逻辑的:必须指定数据,而指针就是最好的。在Java版本中,我更困惑,因为需要一个
long
整数

谁能解释一下这个
long
整数如何表示“C”指针吗?

的最后一个参数根据函数的使用情况有不同的含义。
如果没有缓冲区对象(零)绑定到
GL\u ARRAY\u buffer
目标,则它是指向数组()中第一个通用顶点属性的第一个组件的指针。
如果命名缓冲区对象绑定到目标
GL\u ARRAY\u buffer
,则会被视为缓冲区对象数据存储中的字节偏移量(请参见和)

的最后一个参数具有不同的含义,具体取决于函数的使用情况。
如果没有缓冲区对象(零)绑定到
GL\u ARRAY\u buffer
目标,则它是指向数组()中第一个通用顶点属性的第一个组件的指针。
如果命名缓冲区对象绑定到目标
GL\u ARRAY\u buffer
,则会被视为缓冲区对象数据存储中的字节偏移量(请参阅和)