【发布时间】:2016-06-20 19:27:08
【问题描述】:
我正在使用 LWJGL 调用 OpenGL 函数。
方法org.lwjgl.opengl.GL15#glBufferData() 调用等效的OpenGL method。
它在 LWJGL 中有几个重载的变体,我见过的最常用的是 FloatBuffer,就像这样一个简单的三角形(省略了其他不相关的 OpenGL 调用):
float[] triangle = new float[]{
0.0f, 0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f
};
FloatBuffer buf = BufferUtils.createFloatBuffer(triangle.length);
buf.put(triangle).flip();
int vbo = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, buf, GL_STATIC_DRAW);
但也有直接采用数组的变体,例如float[] 作为数据。由于我从未在网上看到任何代码示例中使用过它,我想知道是否出于任何原因不鼓励使用它?
【问题讨论】: