我在 Android 中使用 OpenGL ES 渲染某些图像。一旦我渲染了框架,我就想复制它。虽然我可以为此使用 FBO,但只有某些设备支持 FBO。对于其他设备,我将不得不使用消耗更多时间的 glReadPixels。由于 glReadPixels 只能从后台缓冲区复制数据,因此只有在获取副本后才能交换缓冲区,这会影响渲染的响应时间。
有没有办法从frontbuffer复制数据。这样我就可以在处理结束后立即将图像渲染到屏幕上,并稍后从前台缓冲区中获取副本。
编辑:在某些设备中,一旦缓冲区与前台缓冲区交换,后台缓冲区就会被清除。在其他一些设备中,它不会被清除。即使在将图像交换到前台缓冲区(而不是将其复制到前台缓冲区)之后,我更希望图像保持在后台缓冲区中。有什么方法可以强制 gl 即使在交换后也不清除后备缓冲区?
最佳答案
使用将读取切换到前台缓冲区
glReadBuffer(GL_FRONT);
关于android - 如何使用 glReadPixels 从前台缓冲区读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6069714/