我最近问了一个相关的问题,但我忘了明确地问这个问题。
(我想在使用 OpenGL ES 2.0 的 Android 应用程序中实现双缓冲方案,而 Android 的默认方案似乎有点难以预测。)
我最近问了一个相关的问题,但我忘了明确地问这个问题。
(我想在使用 OpenGL ES 2.0 的 Android 应用程序中实现双缓冲方案,而 Android 的默认方案似乎有点难以预测。)
绕过 SurfaceFlinger 的唯一方法是 root 设备并关闭整个应用程序框架。然后,您必须与硬件作曲家 HAL 交互——仅使用帧缓冲区 dev 无法在所有设备上工作。
只要没有发生任何其他事情,SurfaceFlinger 的行为就非常可预测。当然,总会有其他事情发生,但无论您是否通过 SurfaceFlinger 进行合成都是如此。
正如在另一个问题(可能是您的问题)中提到的,Android 上的 GLES 至少是双缓冲的 ( eglSwapBuffers()
),因此您无需实现任何东西来获得该行为。