当我使用OpenGL启用调试层时,我会注册一个回调,只要有任何注意事项告诉我,就会调用它。似乎并非所有传递给回调的消息都是错误。有一个" OTHER"类别,它似乎只要你做了什么就会输出这些信息。在我的例子中,我创建了一个VBO:
GLuint VBO_ID;
glGenBuffers(1, &VBO_ID); // The VBO_ID I get back is 3.
glBindBuffer(GL_ARRAY_BUFFER, VBO_ID);
glBufferData(GL_ARRAY_BUFFER, sizeInBytes, vertices, GL_DYNAMIC_COPY);
// At this point the callback is called, which gives the message:
message:Buffer详细信息:Buffer object 3(绑定到 GL_ARRAY_BUFFER_ARB,用法提示为GL_STATIC_DRAW)将使用VIDEO 内存作为缓冲区对象操作的源。
无论使用提示是什么(glBufferData的最后一个参数),此消息总是说使用提示为GL_STATIC_DRAW
。无论我使用GL_DYNAMIC_COPY
,GL_DYNAMIC_DRAW
,GL_STATIC_READ
,还是其他任何内容。消息总是一样的。
所以是的,我对此非常困惑。另外,为什么它会传达这个信息,它不是一个警告,因为我没有做错任何事,它只是一个确认。我已经结束了这个" OTHER"消息的类别,否则我的日志就会被这些消息填满,因为只要我做某事就会调用它。
答案 0 :(得分:0)
不要担心这个常数,只需输入GL_STATIC_DRAW即可。它是旧GL版本的剩余部分。您还可以使用glBufferStorage,您可以更精确地指定缓冲区使用情况。