user897101
user897101

Reputation: 31

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.

Upvotes: 3

Views: 718

Answers (2)

aparker
aparker

Reputation: 178

Did you mean to use

glPixelStorei(GL_UNPACK_ALIGNMENT,1);

since you are trying to get the contents FROM the stencil buffer?

Upvotes: 0

datenwolf
datenwolf

Reputation: 162327

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

Upvotes: 5

Related Questions