Akane(6)

akane の全画面表示。

 全画面を自前で拡大していますが、単純な処理をしているので、文字などが荒くなってしまいます。そこで、解像度を切り替える方法で表示できないかを試行錯誤しました。

 結論はできました。全画面表示するタイミングが悪かったようです。イベントループの中で全画面表示に切り替えたらうまくいきました。こちらのほうがきれいに表示されます。

 また、 display の mode を検索して最適な解像度になるようにしました。とはいえ、解像度切り替えでは、気にならない程度ですが若干横長になっているはずです。

 解像度の変更がない時は、今までどおり、自前で処理します。

 メニューから全画面の切り替えができないか試してみましたが、うまく行きません。メニューの項目は残しますが、無効にしてあります。調べると全画面表示とウィンドウ表示を切り替えるとおかしくなるといった書き込みもありました。

 akane を全画面表示で動かした後、Xkanon を動かすと Xkanon が全画面表示できませんでした。akane の終了時に、display mode をもとに戻し、ウィンドウ表示にしてから終了するように修正したところ、問題は解決しました。

 オプションで、SDL_WINDOW_FULLSCREEN と SDL_WINDOW_FULLSCREEN_DESKTOP を使い分けるようにしました。SDL_WINDOW_FULLSCREEN_DESKTOP の時は、メニューでウィンドウと全画面の切り替えができます。

 画面サイズが 640 x 480 以下のディスプレイは考慮していません。気が向いたら Renderer で実装するかもしれませんが、やる気は殆どありません。

Akane

Posted by sirius