Я пытаюсь прочитать значения альфа-пикселей, используя glReadPixels.Первым делом я прочитал пиксели по отдельности.Чтобы ускорить процесс, я попытался прочитать все пиксели одновременно:
GLubyte *pixels = new GLubyte[w*h*4];
glReadPixels(0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
, и это сработало, но очень медленно.Сейчас я пытаюсь просто получить альфа-значение, не тратя места на компоненты 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)
?