PFND3DDDI_SETDISPLAYMODE コールバック関数 (d3dumddi.h)

SetDisplayMode 関数は、GDI デスクトップでサポートされていない表示モードまたはプライマリに切り替わります。

構文

PFND3DDDI_SETDISPLAYMODE Pfnd3dddiSetdisplaymode;

HRESULT Pfnd3dddiSetdisplaymode(
  HANDLE hDevice,
  const D3DDDIARG_SETDISPLAYMODE *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

pData [in]

表示モードを設定するためのパラメーターを指定する D3DDDIARG_SETDISPLAYMODE 構造体へのポインター。

戻り値

表示モードが正常に設定されていない場合、SetDisplayMode はS_OKまたは適切なエラー結果を返します。

注釈

Microsoft Direct3D ランタイムは SetDisplayMode を呼び出して、GDI デスクトップでサポートされていない表示モードまたはプライマリに切り替えます。 次の一覧では、このようなプライマリの例について説明します。

  • チャネルあたり 10 ビット (10:10:10:2) で作成されたプライマリは、ターゲット形式 (たとえば、D3DFMT_A2R10G10B10) を表示およびレンダリングします。
  • スキャンアウト中に複数サンプリングが実行される、複数サンプリングされたプライマリ
  • 全画面表示の Microsoft DirectX バージョン 9.L アプリケーションで使用される永続的なプライマリ
Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの CreateResource 関数を呼び出して、スキャン対象のプライマリを作成します。ただし、ドライバーは、 SetDisplayMode 関数が呼び出された場合にのみ、ハードウェアをスキャンするようにプログラムする必要があります。 そのため、ランタイムは、pData パラメーターによって指されるD3DDDIARG_SETDISPLAYMODE構造体の hResource メンバーと SubResourceIndex メンバーを、ドライバーの CreateResource 関数の呼び出しによって作成されたプライマリに設定します。 その後、ドライバーは 、hResource および SubResourceIndex によって表されるプライマリをプライマリ割り当てハンドルに変換する必要があります。 ドライバーがこの変換を行った後、ドライバーは pfnSetDisplayModeCb 関数の呼び出しで結果のハンドルを渡す必要があります。これにより、ディスプレイ ミニポート ドライバーの DxgkDdiCommitVidPn 関数の呼び出しが開始されます。

ユーザー モード ディスプレイ ドライバーは、pfnSetDisplayModeCb の呼び出しでD3DDDICB_SETDISPLAYMODE構造体の hPrimaryAllocation メンバーを設定して、割り当てをスキャンできます。 ただし、割り当てはプライマリとしてマークする必要があります (つまり、ユーザー モードのディスプレイ ドライバーは、割り当てを作成する pfnAllocateCb 関数の呼び出しで、D3DDDI_ALLOCATIONINFO構造体の Flags メンバーにプライマリ ビット フィールド フラグを設定する必要があります)。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_SETDISPLAYMODE

D3DDDI_DEVICEFUNCS

pfnSetDisplayModeCb