访问缓冲区在OpenGL
问题描述:
所以我知道,你可以使用生成缓冲区:访问缓冲区在OpenGL
GLuint Buffer = 0;
glGenBuffers (1, &Buffer);
有人告诉我,这将产生的Buffer
地址1个缓冲。我也告知,如果我这样做:
GLuint Buffer = 0;
glGenBuffers (2, &Buffer);
然后,它会在Buffer
地址生成2个缓冲区。那么我如何访问这个第二缓冲区?
答
你应该传递一个数组/矢量glGenBuffers
,举例如下:
std::vector<GLuint> buffers(2); //or std::array<GLuint, 2> buffers;
glGenBuffers(2, &buffers[0]);
...
// Access buffer elements at buffers[0] and buffers[1]
...
glDeleteBuffers(2, &buffers[0]);
答
虽然有些人认为普通阵列在C过时++(我并不想开始一个神圣的战争)值得指出的是,这也适用于不使用任何C++容器。旧式阵列将工作得很好:
GLuint buffers[2];
glGenBuffers(2, buffers);
然后使用buffers[0]
和buffers[1]
引用您生成的两个缓冲区的名字。