每当我查看解释如何使用glDrawArrays和glVertexPointer命令的教程时,它们使用的参数就与我可用的参数不同。
例如:教程使用如下参数调用glVertexPointer:(顶点是一个浮点数数组)
glVertexPointer(3, GL_FLOAT, 0, Vertices);
我可用的参数是:
glVertexPointer(int size, int stride, FloatBuffer pointer);
我的问题是:使用glVertexPointer()的正确方法是什么?
最佳答案
顾名思义,glVertexPointer
是基于使用指针的。您正在使用Java,而指针不存在。因此,Java等效项必须以不同的方式工作。它必须带有一个特殊的内存数组对象,该对象可以在内部转换为C指针,该指针将传递给实际的glVertexPointer
调用。
因为Java在缓冲区的内容上放置了一个类型,所以您不需要显式的类型字段。有several overloads of glVertexPointer
in LWJGL,每个都有不同类型的缓冲区。