Java 如果简单数组可以工作,为什么要在OpenGL(LWJGL)中使用缓冲区?
因此,我目前正在学习OpenGL,下面的教程说: 我们必须做的第一件事是将浮点数组存储到浮点缓冲区中。这主要是因为我们必须与基于C的OpenGL库接口,因此我们必须将浮点数组转换为库可以管理的内容 我完全明白了这一点,但奇怪的是,LWJGL提供的每个OpenGL方法都可以使用缓冲区,但也可以使用简单的数组 为什么会出现这种情况,为什么我应该使用缓冲区呢 一些例子: 这适用于Java 如果简单数组可以工作,为什么要在OpenGL(LWJGL)中使用缓冲区?,java,opengl,lwjgl,Java,Opengl,Lwjgl,因此,我目前正在学习OpenGL,下面的教程说: 我们必须做的第一件事是将浮点数组存储到浮点缓冲区中。这主要是因为我们必须与基于C的OpenGL库接口,因此我们必须将浮点数组转换为库可以管理的内容 我完全明白了这一点,但奇怪的是,LWJGL提供的每个OpenGL方法都可以使用缓冲区,但也可以使用简单的数组 为什么会出现这种情况,为什么我应该使用缓冲区呢 一些例子: 这适用于索引作为IntBuffer但也作为int[]的情况 glBufferData(GL\u数组\u缓冲区、索引、GL\u静态图)
索引
作为IntBuffer
但也作为int[]
的情况
glBufferData(GL\u数组\u缓冲区、索引、GL\u静态图);
这适用于value
是FloatBuffer
但也是float[]
的情况
glUniformMatrix4fv(
制服。获取(制服名称),
假,,
价值
);
根据引文,我假设本教程不是为LWJGL 3编写的
是第一个向“Java数组参数”风格的方法添加支持的版本,以前只使用/支持NIO缓冲区
增加了对Java数组参数和热点关键本机的支持
根据中的讨论,这是否回答了您的问题@吉本不,这不是我要找的。我认为您链接的问题甚至与堆外分配LWJGL缓冲区无关。