代码之家  ›  专栏  ›  技术社区  ›  sharvey

glreadPixels和gl_Alpha

  •  5
  • sharvey  · 技术社区  · 14 年前

    我正在尝试使用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) 丢了吗?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Brad Larson    14 年前

    documentation on glReadPixels() for OpenGL ES GL_RGBA GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES GL_ALPHA

    here

    glReadPixels()