【发布时间】:2019-02-13 22:46:20
【问题描述】:
到目前为止,使用我使用过的语言和库,始终可以选择将程序的主循环(游戏或任何具有不断变化的上下文的东西)同步到当前显示器的刷新率。所以我可以选择打开 VSYNC 或者让循环每秒执行尽可能多的次数。我指的是 SDL2、带有 GLFW 的 OpenGL 3.0、HTML5 画布等。
我现在在 OpenGL ES 2.0 中的 Android 上寻找类似的东西,但到目前为止,我能找到的所有示例代码都只是使用睡眠的变体并将帧速率设置为 60 或 30。所以他们基本上计算了自上次迭代以来经过的时间,并且仅在经过给定的时间后才进一步前进并调用 requestRender() 函数(在每秒 60 帧的情况下为 0.016 毫秒等)。
我只是想知道是否有比这更好的选择。我只是担心并非每部手机都具有相同的屏幕刷新率,因此硬编码任何数量似乎都不是理想的方法。据我了解,计算给定手机的刷新率并不是那么简单,或者至少使用“纯”Java 和 OpenGL 是不可能的。
【问题讨论】:
标签: java android opengl-es opengl-es-2.0