【发布时间】:2014-08-16 19:53:10
【问题描述】:
我最近问了一个相关的问题,但是我忘了明确地问这个问题。
(我想在使用 OpenGL ES 2.0 的 Android 应用中实现双缓冲方案,而 Android 的默认方案似乎有点难以预测。)
【问题讨论】:
标签: android opengl-es framebuffer surfaceflinger
我最近问了一个相关的问题,但是我忘了明确地问这个问题。
(我想在使用 OpenGL ES 2.0 的 Android 应用中实现双缓冲方案,而 Android 的默认方案似乎有点难以预测。)
【问题讨论】:
标签: android opengl-es framebuffer surfaceflinger
绕过 SurfaceFlinger 的唯一方法是 root 设备并关闭整个应用程序框架。然后,您必须与硬件作曲家 HAL 交互 - 仅使用帧缓冲区 dev 无法在所有设备上工作。
SurfaceFlinger's behavior 是非常可预测的,只要没有发生任何其他事情。当然,总会有其他事情发生,但无论您是否通过 SurfaceFlinger 合成都是如此。
正如在另一个问题(可能是您的问题)中提到的,Android 上的 GLES 至少是双缓冲的 (eglSwapBuffers()),因此您无需实现任何东西来获得该行为。
【讨论】:
adb shell stop。 FWIW,您应该为此类问题创建一个新问题,而不是对现有答案添加评论。