OpenSiv3D
OpenSiv3D copied to clipboard
VSync無効時にフレームレートを制限する機能を追加
下記Issueについて実装しました。
https://github.com/Siv3D/OpenSiv3D/issues/1180
実装にあたって気になっている点は下記2点です。
- 目標フレームレート(fps引数)にゼロや負の値を指定した時に例外を投げているのは問題ないか?
- 目標フレームレート(fps引数)にNaNや+inf、-infを指定した場合も例外を投げるべきか? 補足事項として、Qiita記事での実装ではMaxDrift(=10ミリ秒)という定数値を導入していましたが、now < sleepUntilの場合のみsleepを実行することで不要になったので、今回の実装には入っていません。
手元では現状Windows版のみで動作確認しているので、macOS版、Linux版、Web版でも正常動作するかどうかは今後確認予定です。 (Xcodeプロジェクトへのソースファイル追加についても現状は未対応です)
下記の残作業が完了したらDraft PR→PRに変更予定です。
- Xcodeプロジェクトのソースファイル一覧更新
- コメントアウトで残っている旧SetTargetFrameRateHz用のコードの削除