-
-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VSync無効時にフレームレートを制限する機能の提案 #1180
Comments
ご提案ありがとうございます。#1179 の調査完了後に検討します。 |
#1179 をマージしたので、こちら進めます。
|
ご確認ありがとうございます。1〜3について承知しました! |
@Reputeless 実装にあたって気になっている点は下記2点です。
補足事項として、Qiita記事での実装では 手元では現状Windows版のみで動作確認しているので、macOS版、Linux版、Web版でも正常動作するかどうかは今後確認予定です。 |
ありがとうございます。確認します、 |
レビューコメントが記載できるように一旦Draft PRにいたしました。 |
|
追加する機能の内容 | Describe the solution you'd like
過去バージョンに存在していた、下記の関数を別の実装で復活させたいと思っています。
Graphics::SetTargetFrameRateHz
Graphics::GetTargetFrameRateHz
下記のQiita記事に記載した
std::this_thread::sleep_until
を使う方法で、Windows版・macOS版の2通りで安定して300fpsに固定できることを確認できました。OpenSiv3Dでフレームレートを60fps以外に固定する方法(FrameRateLimitアドオン) | Qiita
そこで、上記と同じような内容の実装をSiv3D内に組み込んで、VSync無効時のフレームレートを指定できるようにしたいと思っています。
その機能の追加によって解決する問題 | Is your feature request related to a problem? Please describe.
60fps以外のフレームレートで安定動作させられる。
ソフトウェア作成者が適切なウェイトを入れないままVSyncを無効化してしまい、ソフトウェア利用者の環境にて過剰な負荷が発生するのを防げる。
備考 | Additional context
もしよろしければ、実装についてぜひ私の方で挑戦してみたいです。
そこで、まずは実装方針について3点ご相談したいです。
Graphics::SetTargetFrameRateHz
と同じにすべきでしょうか?それとも、より適切な名前があれば名前空間や関数名を別のものに変更しても問題ないでしょうか?ISiv3DFrameRateLimit
インタフェース、CFrameRateLimit
クラスを新たに作成して実装し、System::Update
内のAddonのpostPresentの直前か直後のタイミングにSIV3D_ENGINE(FrameRateLimit)->update();
を入れて実行する形が良さそうですが、方針について問題なさそうでしょうか?The text was updated successfully, but these errors were encountered: