フルスクリーンの需要が多少ありそうなので実装はしてみたが、
・全体に拡大
・比率は維持したまま最大に拡大
・きりのいい倍率に拡大
の3つ候補があがる。
見てのとおり全体拡大は横に広くなるし、
比率維持拡大は拡大率が3.33倍と半端なため
よこに3ドットだったり4ドットだったりしてがたがたになる。
きっちり3倍に拡大して画面真ん中に置くのがスマートか。
実際に試してみるまで空白部分が多くて微妙になるんじゃないかとおもったが
意外に気にならないのでこれを採用しようとおもう。
ゲーム画面が160x144。
フルスクリーン時に640x480にする。
ゲーム画面を4倍にすると640x576となり縦が収まらないので、
3倍の480x432にした。
ゲーム終了時にフルスクリーンを解除してウィンドウに戻してから
ウィンドウサイズなどの設定を保存をする。のだけど、
WM_DESTROYで一連の処理を行ってていたがウィンドウサイズをもとに戻せず
フルスクリーンの設定が保存されてしまう。
WM_DESTROYの段階ではウィンドウがほぼ死んでるんだろう。
この関数は、 メッセージと メッセージをウィンドウに送って、ウィンドウを非アクティブ化し、キーボードの入力フォーカスをウィンドウから取り除きます。また、ウィンドウメニューの破棄、スレッドのメッセージキューのフラッシュ、タイマーの破棄、クリップボードの所有権の解放、クリップボードビューアチェインの切断も行います( ウィンドウがビューアチェインの先頭にあった場合)。
DestroyWindow 関数
なので終了処理をWM_CLOSEで行うように変更した。
0 件のコメント:
コメントを投稿