android - 如何使用 glReadPixels 从前台缓冲区读取?

标签 android opengl-es

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

有没有办法从frontbuffer复制数据。这样我就可以在处理结束后立即将图像渲染到屏幕上,并稍后从前台缓冲区中获取副本。

编辑:在某些设备中,一旦缓冲区与前台缓冲区交换,后台缓冲区就会被清除。在其他一些设备中,它不会被清除。即使在将图像交换到前台缓冲区(而不是将其复制到前台缓冲区)之后,我更希望图像保持在后台缓冲区中。有什么方法可以强制 gl 即使在交换后也不清除后备缓冲区?

最佳答案

使用将读取切换到前台缓冲区

glReadBuffer(GL_FRONT);

关于android - 如何使用 glReadPixels 从前台缓冲区读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6069714/

相关文章:

java - 如何将引用(不可序列化)从一个 Activity 传递到另一个 Activity ?

android - 纹理不会出现使用 native 代码在 android 上使用 opengl es 加载它

iPhone 和 iPad : Is an OpenGL ES Universal App a pain to write for multiple devices?

android - xoom 上的闪存视频性能不佳

android - 在 Galaxy SII 上安装 Android USB 驱动程序时出现问题

android - Play 商店说我的应用程序受 0 台设备支持 - 没有设备与我的应用程序兼容

android - 带有kivy的android上的后退按钮功能

android - Android 上 GLSL 中的数组

java - Android Studio 上的 setEGLContextClientVersion(3) 导致错误

iphone - 如何使 iPhone OpenGL ES 上下文立即更新?