所以我知道,你可以使用生成緩衝區:訪問緩衝區在OpenGL
GLuint Buffer = 0;
glGenBuffers (1, &Buffer);
有人告訴我,這將產生的Buffer
地址1個緩衝。我也告知,如果我這樣做:
GLuint Buffer = 0;
glGenBuffers (2, &Buffer);
然後,它會在Buffer
地址生成2個緩衝區。那麼我如何訪問這個第二緩衝區?
所以我知道,你可以使用生成緩衝區:訪問緩衝區在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]
引用您生成的兩個緩衝區的名字。