Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenGL中缓冲区的访问_C++_Opengl - Fatal编程技术网

C++ OpenGL中缓冲区的访问

C++ OpenGL中缓冲区的访问,c++,opengl,C++,Opengl,因此,我知道您可以使用以下方法生成缓冲区: GLuint Buffer = 0; glGenBuffers (1, &Buffer); 我被告知这将在buffer的地址中生成1个缓冲区。我还被告知,如果我这样做: GLuint Buffer = 0; glGenBuffers (2, &Buffer); 然后它将在Buffer的地址中生成2个缓冲区。那么如何访问第二个缓冲区呢?您应该将数组/向量传递给glGenBuffers,例如: std::vector<GLuint

因此,我知道您可以使用以下方法生成缓冲区:

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]);
std::向量缓冲区(2)//或std::数组缓冲区;
glGenBuffers(2,&buffers[0]);
...
//在缓冲区[0]和缓冲区[1]处访问缓冲区元素
...
glDeleteBuffers(2,&buffers[0]);

虽然有些人认为普通数组在C++中过时了(我并不打算发动圣战),但值得指出的是,这也不需要使用任何C++容器。旧式数组可以正常工作:

GLuint buffers[2];
glGenBuffers(2, buffers);
然后使用
buffers[0]
buffers[1]
引用您生成的两个缓冲区名称