假设我只想创建并填充缓冲区。
GLuint ret;
glGenBuffers(1,&ret);
glBindBuffer(GL_ARRAY_BUFFER, ret);
glBufferData(GL_ARRAY_BUFFER,size,data,usage);
glBindBuffer(GL_ARRAY_BUFFER,0);
我在两个电话中使用哪个目标真的很重要吗? (当然他们必须是一样的)。
例如:我可以填充缓冲区写入GL_ARRAY_BUFFER
目标,同时将其绑定到该目标上,然后在代码中将理智缓冲区绑定到GL_UNIFORM_BUFFER
目标并使用它“'使用glBindBufferRange
填充统一块的数据?
答案 0 :(得分:0)
没关系;任何目标应该工作。我之前创建的缓冲区的目标与预期的用途相匹配,并没有任何区别。
我想OpenGL实现(即驱动程序)可以根据传递的目标不同地分配内存,但我没有看到这方面的证据。
此外,较新的glNamedBufferData
与[{1}}完全相同而不需要先前的glBufferData
调用,但没有glBindBuffer
参数。这强烈暗示目标是可以互换的。