3

我在 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 用零填充数据缓冲区,但结果没有改变。

4

2 回答 2

5

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

于 2011-08-16T16:57:38.633 回答
0

你的意思是使用

glPixelStorei(GL_UNPACK_ALIGNMENT,1);

因为您试图从模板缓冲区中获取内容?

于 2011-08-16T17:04:41.240 回答