其他分享
首页 > 其他分享> > c – opengl模板缓冲区未初始化为零?

c – opengl模板缓冲区未初始化为零?

作者:互联网

我在MS WindowsXP下工作,我的显卡是itel GMA4500,
我的代码:

glClearStencil(0);
glClear(GL_STENCIL_BUFFER_BIT);

unsigned char* data = new unsigned char[width*height];
glPixelStorei(GL_PACK_ALIGNMENT,1);
glReadPixels(0,0,width,height,GL_STENCIL_INDEX,GL_UNSIGNED_BYTE,data);

但是当我检查数据缓冲区时,我可以看到字节不是全为零,
所以有什么问题?

是的,我确定我有一个模板缓冲区,并且在调用glReadPixels后,我检查了glGetError,没有错误.我也试过memset用零填充数据缓冲区,但结果没有改变.

解决方法:

你真的有一个模板缓冲区吗?如果没有,glReadPixels将引发错误(检查glGetError(…))并保持目标缓冲区的内容不变.

标签:c,opengl,stencil-buffer,glreadpixels
来源: https://codeday.me/bug/20190903/1795175.html