如何使用glReadPixels从前端缓冲区读取?

时间:2011-05-20 09:07:22

标签: android opengl-es

我在Android中使用OpenGL ES来渲染某些图像。一旦我渲染帧,我想要复制它。虽然我可以使用FBO,但只有某些设备支持FBO。对于其他设备,我将不得不使用消耗更多时间的glReadPixels。由于glReadPixels只能复制后缓冲区中的数据,因此只有在获取影响渲染响应时间的副本后才能交换缓冲区。

有没有办法从前缓冲区复制数据。因此,我可以在处理结束后立即将图像渲染到屏幕,然后从前缓冲区获取副本。

编辑:在某些设备中,只要缓冲区与前缓冲区交换,后台缓冲区就会被清除。在某些其他设备中,它不会被清除。即使将图像交换到前缓冲区(而不是将其复制到前缓冲区),我宁愿将图像保留在后备缓冲区中。有没有办法强迫gl在交换后不要清除后备缓冲区?

1 个答案:

答案 0 :(得分:1)

使用

将读数切换到前缓冲区
glReadBuffer(GL_FRONT);