Re: フルスクリーンの処理について ( No.1 ) |
- 名前:Nameless 日時:2014/12/31 23:47
3.11bの時点では少なくとも間違っています。
SetFullScreenResolutionModeの解説
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph3.html#R4N10
に書いてあるようにモニターの画面解像度が対応していない場合にフルスクリーンの指定をした場合はデフォルトでは
「モニターの解像度をデスクトップ画面と同じにして、SetGraphMode で指定した解像度の画面を
縦横比を維持しながら拡大して表示する」
という処理が行われているはずです。
おそらくのりのさんの場合モニターが「対応していた」のでそのような動作になったのではないかと思います。
ただ、これはモニタ依存なので(間違っていたらごめんなさい)
確実な動作を求める場合は少し工夫が必要です。
確実に引き延ばして表示したい場合は、上記の関数にDX_FSRESOLUTIONMODE_DESKTOPやDX_FSRESOLUTIONMODE_MAXIMUMを
渡せば大丈夫です。
確実に画面中央に等倍ドットで表示したい場合は、
1.GetDisplayMaxResolutionやGetScreenStateで取得した解像度をSetGraphModeに渡し、画面をディスプレイ全体にする。
2.MakeScreenで任意の大きさの描画画面を作る
3.裏画面の代わりにこの画面に書き込みScreenFlipの代わりに描画画面の内容を表画面の任意の位置に(この場合中心に)
描画する。(いったん裏画面に描画したほうがいいのかもしれませんが...)
という風にすればできます。
|
Re: フルスクリーンの処理について ( No.2 ) |
- 名前:のりの 日時:2015/01/01 08:41
ご返答ありがとうございます。
できればなるべく高速な処理でフルスクリーンモードにしたいんですよね・・・。
ご指摘のようにSetFullScreenResolutionModeでDX_FSRESOLUTIONMODE_DESKTOPに設定すればフルサイズにはなるんですが。
本来の機能ではデフォルトのDX_FSRESOLUTIONMODE_NATIVEのままで
モニターが対応していればそのままフルサイズのフルスクリーンになって、
そうでなければDX_FSRESOLUTIONMODE_DESKTOPの動作に移行して拡大表示になると思うのですが。
デフォルトのDX_FSRESOLUTIONMODE_NATIVE状態で
中央に小さく等倍ドット表示になってしまうのが困りものでして。
できれば対応している環境では拡大表示ではなくフルスクリーンモードにならないかなと。
|
Re: フルスクリーンの処理について ( No.3 ) |
- 名前:管理人 日時:2015/01/01 11:38
> デフォルトのDX_FSRESOLUTIONMODE_NATIVE状態で
> 中央に小さく等倍ドット表示になってしまうのが困りものでして。
> できれば対応している環境では拡大表示ではなくフルスクリーンモードにならないかなと。
「モニタの最大解像度以外でモニタが対応している解像度」を指定した場合に
「モニタの全体に拡大されて表示される」のか
「モニタの中央にドットバイドットで表示される」のかはソフトウェアの側では知る手段が無いので
オプションなどで DX_FSRESOLUTIONMODE_NATIVE で動作させるか DX_FSRESOLUTIONMODE_DESKTOP で動作させるかを
プレイヤーに選択できるようにするしかありません
この辺り、どうにかして欲しいですよね・・・ (- -;;
|
Re: フルスクリーンの処理について ( No.4 ) |
- 名前:のりの(解決済) 日時:2015/01/01 13:02
なるほど。ソフトウェアサイドで知る方法がないのですね。
了解致しました。
DX_FSRESOLUTIONMODE_DESKTOP で動作させることに致します。
元旦早々の素早いご返答本当にありがとうございました!
|