IDXGIOutput::GetDisplayModeList
要求されたフォーマットおよびその他の入力オプションと一致する表示モードを取得します。
HRESULT
GetDisplayModeList(
DXGI_FORMAT EnumFormat,
UINT Flags,
UINT *pNumModes,
DXGI_MODE_DESC *pDesc
);
パラメータ
- EnumFormat
カラー フォーマット (「DXGI_FORMAT」を参照) - Flags
含まれるモード オプション (「DXGI_ENUM_MODES」を参照)。スケーリングを必要とする表示モードを公開するには、DXGI_ENUM_MODES_SCALING を指定する必要があります。デフォルトではセンタリング モードが列挙されます。このモードは、スケーリングを必要とせず、表示出力に直接対応しています。 - pNumModes
pDesc を NULL に設定すると、pNumModes は指定のフォーマットおよびオプションと一致する表示モードの数を返します。それ以外の場合は、pNumModes は pDesc に返された表示モードの数を返します。 - pDesc
表示モードのリストへのポインター (「DXGI_MODE_DESC」を参照)。NULL に設定すると、表示モードの数を取得できます。
戻り値
次の DXGI_ERROR のいずれかを返します。このメソッドの呼び出し後、すぐに利用可能な表示モードが変化する場合がまれにある可能性があり、その際、すべての表示モードのための十分な空き領域がない場合には、DXGI_ERROR_MORE_DATA が返されます。リモート デスクトップ サービス セッション (以前はターミナル サービス セッションと呼ばれていました) から GetDisplayModeList を呼び出すと、DXGI_ERROR_NOT_CURRENTLY_AVAILABLE が返されます。
解説
一般に、ウィンドウ モードからフルスクリーン モードへの切り替え時に、スワップ チェーンは自動的にスワップ チェーンの解像度、カラー深度、およびリフレッシュ レートと一致する (またはそれを超える) 表示モードを選択します。表示モードに対してより多くの制御を行うには、この API を使用してモニター能力に対して検証された表示モードのセット、または (デスクトップの設定がモニターに対して検証されていない場合には)、デスクトップに適合するすべてのモードをポーリングします。
次に示すように、この API は 2 回呼び出されるように設計されています。1 回目は利用可能なモードの数を取得するため、2 回目はモードの記述を返すためです。
UINT num = 0; DXGI_FORMAT format = DXGI_FORMAT_R32G32B32A32_FLOAT; UINT flags = DXGI_ENUM_MODES_INTERLACED; pOutput->GetDisplayModeList( format, flags, &num, 0); ... DXGI_MODE_DESC * pDescs = new DXGI_MODE_DESC[num]; pOutput->GetDisplayModeList( format, flags, &num, pDescs);
要件
ヘッダー: DXGI.h 宣言
ライブラリ: DXGI.lib 内容