トップページ > 記事閲覧
ハードが対応している画面解像度を取得したい
名前:由紀 日時: 2015/12/13 01:23

グラフィックボードが対応している画面解像度の一覧を配列などとして取得する方法はありますか? フルスクリーンで表示できる解像度をコンフィグなどでユーザーの環境に合わせて選択できるようにしたいのです イメージとしては以下のような感じです (Steamで販売されているBesiegeというゲームです おそらくUnityで作られていると思います) ttp://i.imgur.com/RK7ftSD.jpg
メンテ

Page: 1 |

Re: ハードが対応している画面解像度を取得したい ( No.1 )
名前:管理人 日時:2015/12/13 03:00

非公開関数の GetDisplayModeNum と GetDisplayMode を使用することで可能です // 変更可能なディスプレイモードの数を取得する int GetDisplayModeNum( void ) ; // 変更可能なディスプレイモードの情報を取得する( ModeIndex は 0 〜 GetDisplayModeNum の戻り値-1 ) DISPLAYMODEDATA GetDisplayMode( int ModeIndex ) ; GetDisplayMode の戻り値である DISPLAYMODEDATA 構造体は以下のように定義されています // 画面モード情報データ型 struct DISPLAYMODEDATA { int Width ; // 水平解像度 int Height ; // 垂直解像度 int ColorBitDepth ; // 色ビット深度 int RefreshRate ; // リフレッシュレート( -1 の場合は規定値 ) } ; この関数を使用して画面に使用できる画面モードの一覧を表示するプログラムは以下のようになりますので、 よろしければ参考にしてください m(_ _)m #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { DISPLAYMODEDATA ModeData ; int i, ModeNum ; // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // フォントサイズを小さくする SetFontSize( 10 ) ; // フォントの線を細くする SetFontThickness( 0 ) ; // ディスプレイモードの数を取得する ModeNum = GetDisplayModeNum() ; // ディスプレイモードの数だけループする for( i = 0 ; i < ModeNum ; i ++ ) { // ディスプレイモードの情報を取得する ModeData = GetDisplayMode( i ) ; // 画面にディスプレイモードの情報を描画する DrawFormatString( i / 40 * 128, ( i % 40 ) * 11, GetColor( 255,255,255 ), "%dx%d %dbit %dHz", ModeData.Width, ModeData.Height, ModeData.ColorBitDepth, ModeData.RefreshRate ) ; } // キーが押されるまで待つ WaitKey() ; // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
メンテ
Re: ハードが対応している画面解像度を取得したい ( No.2 )
名前:由紀 日時:2015/12/13 11:58

ありがとうございます これで実装できそうです
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存