Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

opengl stencil buffer not initialized with zero?

I work under MS WindowsXP,my video card is itel GMA4500, my code:

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);

but when i checked the data buffer, i can see that the bytes are not all zero, so what's the problem?


YES, I'm sure i have a stencil buffer, and after call glReadPixels, i checked glGetError,there's no error. i also tried memset to fill data buffer with zero, but the result didn't changed.

like image 244
user897101 Avatar asked Apr 01 '26 23:04

user897101


1 Answers

Do you actually have a stencil buffer? If not, glReadPixels will raise an error (check glGetError(…)) and leave the target buffer's contents unchanged.

like image 191
datenwolf Avatar answered Apr 09 '26 05:04

datenwolf



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!