PFND3DDDI_SETPRIORITYCB コールバック関数 (d3dumddi.h)
pfnSetPriorityCb 関数は、リソースまたは割り当てのリストの優先順位レベルを設定します。
構文
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
パラメーター
hDevice
ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。
unnamedParam2
pData [in]
リソースまたは割り当ての一覧を設定する優先度レベルを記述する D3DDDICB_SETPRIORITY構造体への ポインター。
戻り値
pfnSetPriorityCb は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
S_OK | 優先度レベルが正常に設定されました。 |
E_INVALIDARG | パラメーターが検証され、正しくないと判断されました。 |
この関数は、他の HRESULT 値も返す場合があります。
注釈
ユーザー モードのディスプレイ ドライバーは 、pfnSetPriorityCb 関数を呼び出して、基になるリソースまたは割り当ての一覧の優先順位を設定できます。 リソースの優先度レベルが設定されている場合、そのリソースに属するすべての割り当てが、指定された優先度レベルに設定されます。 通常、ユーザー モード ディスプレイ ドライバーは、リソースまたは割り当てのリストの優先順位を設定します。これは、Microsoft Direct3D ランタイムがユーザー モードディスプレイ ドライバーの SetPriority または SetResourcePriorityDXGI 関数を呼び出して、リソースのメモリからの削除の優先度を設定した後です。 ただし、ユーザー モード ディスプレイ ドライバーは、割り当ての優先順位をいつでも設定できます。
アプリケーションがサーフェスの優先度レベルを設定するように要求した後、ユーザー モード ディスプレイ ドライバーは、適切なリソースまたは割り当ての一覧を、アプリケーションで指定された優先度レベルに設定する必要があります。
ドライバーは、必要に応じて、上記の定義値以外の優先度レベルを使用できます。 たとえば、優先度レベルが 0x78000001 の割り当てをマークすると、割り当てが通常よりもわずかに上回っていることを示します。
例
次のコード例は、優先度レベルを設定する方法を示しています。
HRESULT CD3DContext::SetPriority(CONST D3DDDIARG_SETPRIORITY* pSetPriority) {
DWORD dwSurfaceHandle = (DWORD)(DWORD_PTR)pSetPriority->hResource;
CResource &res = m_RTbl[dwSurfaceHandle];
D3DDDICB_SETPRIORITY setPri;
UINT priority;
priority = pSetPriority->Priority;
memset(&setPri, 0, sizeof(setPri));
setPri.hResource = res.m_hResRuntime;
setPri.pPriorities = &priority;
return (m_d3dCallbacks.pfnSetPriorityCb(m_hD3D, &setPri));
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | d3dumddi.h (D3dumddi.h を含む) |