PFND3DDDI_SETDISPLAYMODECB コールバック関数 (d3dumddi.h)
pfnSetDisplayModeCb 関数は、ディスプレイへのスキャン アウトに使用される割り当てを設定します。
構文
PFND3DDDI_SETDISPLAYMODECB Pfnd3dddiSetdisplaymodecb;
HRESULT Pfnd3dddiSetdisplaymodecb(
HANDLE hDevice,
D3DDDICB_SETDISPLAYMODE *unnamedParam2
)
{...}
パラメーター
hDevice
ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。
unnamedParam2
pData [in, out]
スキャンアウトに使用される割り当てを記述する D3DDDICB_SETDISPLAYMODE 構造体へのポインター。
戻り値
pfnSetDisplayModeCb は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
S_OK | 表示モードが正常に設定されました。 |
E_INVALIDARG | パラメーターが検証され、正しくないと判断されました。 |
D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT | ユーザー モードディスプレイ ドライバーは、D3DDDICB_SETDISPLAYMODE の hPrimaryAllocation メンバーが指定する割り当てに関連付けられているサーフェスの形式を、D3DDDICB_SETDISPLAYMODEの PrivateDriverFormatAttributemember が指定する形式属性に変換する必要があります。 その後、ドライバーは pfnSetDisplayModeCb をもう一度呼び出す必要があります。 ドライバーは、新しい割り当てを割り当て、古いプライマリ サーフェスから新しいサーフェスへのビット ブロック転送 (bitblt) の変換を実行し、ドライバーが後続のすべての操作にこの割り当てに新しい割り当てハンドルを使用している限り、古いプライマリを破棄できます。 ドライバーは、pfnSetDisplayModeCb が別の戻り値を返すまで、このプロセスを繰り返す必要があります。 |
この関数は、他の HRESULT 値を返す場合もあります。
備考
Microsoft Direct3D ランタイムは、ユーザー モード ディスプレイ ドライバーの SetDisplayMode を呼び出すか、または SetDisplayModeDXGI 関数を してプライマリ サーフェスをディスプレイにスキャンアウトするように設定した後、ユーザー モードディスプレイ ドライバーは、pfnSetDisplayModeCb 関数を呼び出して、スキャンアウトに使用される基になるプライマリ割り当てを設定します。
Direct3D バージョン 11 注: ドライバーが pfnSetDisplayModeCb 呼び出す方法の詳細については、「Direct3D 10からの変更」を参照してください。
例
次のコード例は、ディスプレイにスキャンアウトするための割り当てを設定する方法を示しています。
HRESULT CD3DContext::SetDisplayMode(CONST D3DDDIARG_SETDISPLAYMODE* pSetDisplayMode) {
DWORD dwSrcSurf = ((DWORD)(DWORD_PTR)pSetDisplayMode->hResource) + pSetDisplayMode->SubResourceIndex;
HRESULT hr;
// Timestamp the source surface
m_RTbl[dwSrcSurf].m_qwBatch = m_qwBatch;
// Send the presentation request to the display miniport driver
D3DDDICB_SETDISPLAYMODE SetDisplayModeCBData = {0};
SetDisplayModeCBData.hPrimaryAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx,
dwSrcSurf);
hr = m_d3dCallbacks.pfnSetDisplayModeCb(m_hD3D, &SetDisplayModeCBData);
return (hr);
}
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | d3dumddi.h (D3dumddi.h を含む) |
関連項目
SetDisplayMode の
SetDisplayModeDXGI の