一部のデバイスでフルスピードで実行できないゲームに取り組んでいます。Tegra2では、多くの最適化により、パフォーマンスは約40 fpsです。フレームレートは安定していますが、アニメーションが十分にスムーズではないため、vsyncが必要です。
2.3 Android SDKでは、EGLライブラリーをネイティブで使用できます。だから私はeglSwapIntervalを使用しようとしますが、成功しません。で、このGDC紙、Tegra2はそれを行うことができますようです。
Ps:一定のFPSを強制するThread.sleep()は許容できるソリューションではありません
私はAndroid向けに何も開発していないので、疑わしいように見えますが、スワップ間隔に影響を与えることが可能であるかどうかは確かではありません。それで、アニメーションの途切れがロジックタイムステップの大きな違いに起因する場合、フレームのバッチの平均タイムステップを計算してみる価値はあるでしょうか?このように、おそらく5〜6フレームの期間を使用します。これはvsyncの質問に対する答えではありませんが、固定されたレンダリングタイムステップを導入しなくてもアニメーションに役立つ可能性があります。
—
EnoughTea 2011
Tegra2は即時のレンダラー(タイルではない)なので、eglSwapBufferが1/60秒未満になるまでの時間が経過したかどうかを確認できます。そうでない場合は、16ミリ秒より1ミリ秒長く待機して、eglSwapBufferを実行します。それは恐ろしいだけです!!! 実装されていない場合、Google IO 2011でこの機能について彼らが話すのは非常に奇妙です。
—
Ellis