【发布时间】:2014-08-03 17:49:38
【问题描述】:
从 Froyo 及更高版本开始,我可以安全地接近 Android 设备的图形硬件吗?
我想在 Android 设备上实现一个简单的页面翻转方案,使用两个帧缓冲区。
应该是这样的:
渲染到帧缓冲区 A。(帧缓冲区 A 是后台缓冲区,当前显示帧缓冲区 B。)
等待下一个 VSYNC(可能是 VSYNC 中断?)
告诉操作系统显示帧缓冲区 A 并将帧缓冲区 B 设置为后台缓冲区。
渲染到帧缓冲区 B。(帧缓冲区 B 是后台缓冲区,当前显示帧缓冲区 A。)
等待下一个 VSYNC(可能是 VSYNC 中断?)
告诉操作系统显示帧缓冲区 B 并将帧缓冲区 A 设置为后台缓冲区。
重复步骤 1 - 6。
每秒更新大约 15 到 25 次显示器最适合我的需要。 (我永远不需要 60 fps 或任何高于 30 fps 的速度。)
我打算只使用 OpenGL ES 2.0 进行所有渲染。
【问题讨论】:
-
通常,GL 的双缓冲就是这样做的。所以你不需要在这里实现任何东西。
-
@derhass:我读到在 Jelly Beans 之前,Android 不能保证开始显示新准备显示的缓冲区。所以我的理解是对于通过冰淇淋三明治使用 Froyo 的设备,如果可能的话,我最好自己实现页面翻转。
标签: android opengl-es vsync surfaceflinger