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

时间:2016-01-26 14:19:32

标签: ios objective-c opengl-es ios-simulator ios9

我使用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。看起来第三个组件是alpha,第四个是绿色而不是蓝色和alpha相应的。

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

1 个答案:

答案 0 :(得分:0)

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