3

我最近问了一个相关的问题,但我忘了明确地问这个问题。

(我想在使用 OpenGL ES 2.0 的 Android 应用程序中实现双缓冲方案,而 Android 的默认方案似乎有点难以预测。)

4

1 回答 1

3

绕过 SurfaceFlinger 的唯一方法是 root 设备并关闭整个应用程序框架。然后,您必须与硬件作曲家 HAL 交互——仅使用帧缓冲区 dev 无法在所有设备上工作。

只要没有发生任何其他事情,SurfaceFlinger 的行为就非常可预测。当然,总会有其他事情发生,但无论您是否通过 SurfaceFlinger 进行合成都是如此。

正如在另一个问题(可能是您的问题)中提到的,Android 上的 GLES 至少是双缓冲的 ( eglSwapBuffers()),因此您无需实现任何东西来获得该行为。

于 2014-08-18T14:51:21.990 回答