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 オペレーティング システムで使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | d3dumddi.h (D3dumddi.h を含む) |
関連項目
DxgkCbCreateContextAllocation の
SetPriority の
SetResourcePriorityDXGI の