【发布时间】:2010-11-21 00:37:28
【问题描述】:
我正在尝试使用 glReadPixels 读取 alpha 像素值。我做的第一件事是单独读取像素。为了加快速度,我尝试一次读取所有像素:
GLubyte *pixels = new GLubyte[w*h*4];
glReadPixels(0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
它工作,但真的很慢。现在我试图只检索 alpha 值,而不浪费 RGB 组件的空间:
GLubyte *pixels = new GLubyte[w*h];
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(0, 0, w, h, GL_ALPHA, GL_UNSIGNED_BYTE, pixels);
但我得到:OpenGL error 0x0500 in -[EAGLView swapBuffers]。
知道为什么会抛出 INVALID_ENUM (0x0500) 吗?
【问题讨论】:
标签: iphone opengl-es cocos2d-iphone