glReadPixles 在设备上返回 0,但在模拟器上工作 - iOS 9



我使用glReadPixels来获取所选像素的颜色:

GLubyte pixels[4]= {0,0,0,0};
glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixels);

在模拟器上,这工作正常。但在真正的iPad上,glReadPixels返回零而不是第一个和第二个组件。

例如,在模拟器上,此代码返回 191、147、222、61 作为RGBA(尽管看起来它实际上返回 GBRA 而不是 RGBA ),而在设备上,它返回 0、0、64、199 对于相同的颜色。看起来第三部分是阿尔法,第四分量是绿色,而不是蓝色和阿尔法。

如何在设备上获得正确的值?非常感谢任何想法。

我建议在读取像素之前尝试glFlush()。也许你已经是了。更多的上下文可能会有所帮助,例如,您正在从哪种类型的帧缓冲中读取?它是否附加到浮点纹理?您是否在没有双缓冲的情况下从屏幕缓冲区读取?...