我正在使用支持OpenGL模式的Ogre3d引擎。在什么情况下glGenBuffers/glGenBuffersARB失败?
我有一个对象叫做Chunk
它创建了一个Ogre::ManualObject
。由于ManualObject
的创建需要一些时间,我将任务放到了一个新线程中。
不幸的是,穿线ManualObject
的创建之后,我现在得到以下OgreException:
“无法建立GLHardwareVertexBuffer :: GLHardwareVertexBuffer GL顶点缓冲区”
我看着代码并且它失败at this stage:
glGenBuffersARB(1, &mBufferId);
if (!mBufferId)
{
OGRE_EXCEPT(Exception::ERR_INTERNAL_ERROR,
"Cannot create GL vertex buffer",
"GLHardwareVertexBuffer::
}
这表明glGenB uffersARB()没有正确填充mBufferId。
我无法弄清楚是什么原因造成的,有什么建议吗?
在调用'glGenBuffersARB()'之前和之后'glGetError()'告诉你什么? – user1118321 2013-04-11 05:21:52