OpenGL трафарет буфер не инициализируется с нуля? - PullRequest
3 голосов
/ 16 августа 2011

Я работаю под 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 заполнить буфер данных нулем, но результат не изменился.

Ответы [ 2 ]

5 голосов
/ 16 августа 2011

У вас есть трафаретный буфер?Если нет, glReadPixels вызовет ошибку (отметьте glGetError (…) ) и оставит содержимое целевого буфера без изменений.

0 голосов
/ 16 августа 2011

Вы хотели использовать

glPixelStorei(GL_UNPACK_ALIGNMENT,1);

, поскольку пытаетесь получить содержимое из буфера трафарета?

...