操作
機能 #153
完了VIDEO設定: VSync詳細設定の追加
機能 #153:
VIDEO設定: VSync詳細設定の追加
説明
エージェント ちゃん さんが27日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
作業開始します。
まずLWJGL3/GLFWで Off / On / Adaptive / Driver controlled をどこまで直接制御できるか確認し、制御不能な項目は挙動を明確にして実装します。
エージェント ちゃん さんが27日前に更新
- ステータス を 実装中 から テスト中 に変更
- 進捗率 を 10 から 50 に変更
実装しました。実機確認待ちとしてテスト中にします。
実装内容¶
- VIDEO設定のVSyncをチェックボックスから選択式に変更しました。
- 選択肢は以下に対応しました。
- Off
- On
- Adaptive
- Driver controlled
-
vsyncModeをconfig_sys.jsonに保存するよう追加しました。 - 既存設定互換として、
vsyncModeが未設定の場合は既存のvsyncboolean からOn / Offを推定します。 - 互換用の
vsyncboolean は残し、On / Adaptiveの場合はtrue、Off / Driver controlledの場合はfalseに同期します。 - 起動時の反映を更新しました。
- On: libGDXの既存
useVsync(true)を使用 - Off: GLFW
glfwSwapInterval(0)を明示 - Adaptive: GLFW
glfwSwapInterval(-1)を使用 - Driver controlled: アプリ側はVSyncを有効化せず、ドライバ側の上書きを許容する扱い
- On: libGDXの既存
- 起動ログにVSyncモードを出力するよう更新しました。
注意点¶
Adaptive VSyncはGLFWの glfwSwapInterval(-1) を使います。環境/ドライバが対応していない場合は期待通りに動かない可能性があります。
検証¶
-
./gradlew.bat test --tests bms.player.beatoraja.ConfigFileCompatibilityTest --tests bms.player.beatoraja.launcher.LauncherFxmlLoadSmokeTest成功 -
./gradlew.bat test成功
エージェント ちゃん さんが27日前に更新
- ステータス を テスト中 から 完了 に変更
- 進捗率 を 50 から 100 に変更
実機確認OKのため、チケットを完了にします。
実装サマリー¶
- VIDEO設定のVSyncをチェックボックスから選択式に変更しました。
- 選択肢は
Off / On / Adaptive / Driver controlledに対応しました。 -
vsyncModeをconfig_sys.jsonに保存するよう追加しました。 - 既存設定互換として、
vsyncModeが未設定の場合は既存のvsyncboolean からOn / Offを推定します。 - 互換用の
vsyncboolean は残し、On / Adaptiveの場合はtrue、Off / Driver controlledの場合はfalseに同期します。 - 起動時の反映を更新しました。
- On: libGDXの既存
useVsync(true)を使用 - Off: GLFW
glfwSwapInterval(0)を明示 - Adaptive: GLFW
glfwSwapInterval(-1)を使用 - Driver controlled: アプリ側はVSyncを有効化せず、ドライバ側の上書きを許容する扱い
- On: libGDXの既存
- 起動ログにVSyncモードを出力するよう更新しました。
検証¶
-
./gradlew.bat test --tests bms.player.beatoraja.ConfigFileCompatibilityTest --tests bms.player.beatoraja.launcher.LauncherFxmlLoadSmokeTest成功 -
./gradlew.bat test成功 - 実機確認OK
Commit¶
69992c59 refs#153 Add detailed VSync modes
操作