プロジェクト

全般

プロフィール

機能 #159

完了

VIDEO設定: Window Position / Size保存の追加

機能 #159: VIDEO設定: Window Position / Size保存の追加

エージェント ちゃん さんが27日前に追加. 22日前に更新.

ステータス:
完了
優先度:
低め
担当者:
対象バージョン:
開始日:
2026/06/09
期日:
進捗率:

100%

予定工数:

説明

#143 から分割。

概要

Windowed / Borderless使用時に、前回の表示位置やサイズを保存できるようにする。

目的

  • マルチディスプレイ環境での使い勝手を向上する
  • 毎回ウィンドウ位置を調整する手間を減らす

実装前に確認すること

今回追加した displayIndex と、既存の windowWidth / windowHeight / useResolution の関係を整理する。保存タイミングは終了時、表示モード変更時、明示的な設定保存時のどれにするか決める。


関連するチケット 1 (0件未完了1件完了)

関連している beatoraja - 機能 #143: ディスプレイ設定機能の改善完了いづ さん2026/06/09

操作

いづ さん さんが27日前に更新 操作 #1

  • 関連している 機能 #143: ディスプレイ設定機能の改善 を追加

エージェント ちゃん さんが27日前に更新 操作 #2

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

作業開始します。

既存の displayIndexwindowWidth / windowHeight / useResolution の扱いを確認し、Windowed / Borderless の表示位置とサイズを終了時に保存できる形で実装します。

エージェント ちゃん さんが27日前に更新 操作 #3

  • ステータス実装中 から テスト中 に変更
  • 進捗率10 から 50 に変更

実装しました。実機確認待ちとしてテスト中にします。

実装内容

  • Windowed / Borderless使用時のウィンドウ位置とサイズを保存するようにしました。
  • config_sys.json に以下を保存します。
    • windowWidth
    • windowHeight
    • windowX
    • windowY
    • useResolution
  • 初回や旧設定では既存挙動を維持し、useResolution=true の場合は解像度設定のサイズで起動します。
  • Windowed / Borderlessで終了した場合、終了時に実際のウィンドウ位置・サイズをConfigへ反映し、既存の終了時 saveConfig() で保存します。
  • 保存後は useResolution=false とし、次回起動時に保存されたウィンドウ位置・サイズを復元します。
  • Fullscreen時はウィンドウ位置・サイズ保存対象外にしています。
  • VSync用のLWJGL3 window listenerと同じ起動時listenerに統合し、終了前に保存できるようにしました。

検証

  • ./gradlew.bat test --tests bms.player.beatoraja.ConfigFileCompatibilityTest --tests bms.player.beatoraja.launcher.LauncherFxmlLoadSmokeTest 成功
  • ./gradlew.bat test 成功

エージェント ちゃん さんが27日前に更新 操作 #4

  • ステータステスト中 から 完了 に変更
  • 進捗率50 から 100 に変更

実機確認OKのため、チケットを完了にします。

実装サマリー

  • Windowed / Borderless使用時のウィンドウ位置とサイズを保存するようにしました。
  • config_sys.json に以下を保存します。
    • windowWidth
    • windowHeight
    • windowX
    • windowY
    • useResolution
  • 初回や旧設定では既存挙動を維持し、useResolution=true の場合は解像度設定のサイズで起動します。
  • Windowed / Borderlessで終了した場合、終了時に実際のウィンドウ位置・サイズをConfigへ反映し、既存の終了時 saveConfig() で保存します。
  • 保存後は useResolution=false とし、次回起動時に保存されたウィンドウ位置・サイズを復元します。
  • Fullscreen時はウィンドウ位置・サイズ保存対象外にしています。
  • VSync用のLWJGL3 window listenerと同じ起動時listenerに統合し、終了前に保存できるようにしました。

検証

  • ./gradlew.bat test --tests bms.player.beatoraja.ConfigFileCompatibilityTest --tests bms.player.beatoraja.launcher.LauncherFxmlLoadSmokeTest 成功
  • ./gradlew.bat test 成功
  • 実機確認OK

Commit

  • f86bd966 refs#159 Persist window placement

いづ さん さんが22日前に更新 操作 #5

  • 対象バージョン1.0.0 にセット

他の形式にエクスポート: PDF Atom