D3DKMT_RENDER結構 (d3dkmthk.h)
D3DKMT_RENDER 結構描述要轉譯的目前命令緩衝區。
語法
typedef struct _D3DKMT_RENDER {
union {
[in] D3DKMT_HANDLE hDevice;
[in] D3DKMT_HANDLE hContext;
};
[in] UINT CommandOffset;
[in] UINT CommandLength;
[in] UINT AllocationCount;
[in] UINT PatchLocationCount;
[out] VOID *pNewCommandBuffer;
[in/out] UINT NewCommandBufferSize;
[out] D3DDDI_ALLOCATIONLIST *pNewAllocationList;
[in/out] UINT NewAllocationListSize;
[out] D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
[in/out] UINT NewPatchLocationListSize;
[in] D3DKMT_RENDERFLAGS Flags;
[in] D3DKMT_ALIGN64 ULONGLONG PresentHistoryToken;
[in] ULONG BroadcastContextCount;
D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
[out] ULONG QueuedBufferCount;
[out] D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
} D3DKMT_RENDER;
成員
[in] hDevice
D3DKMT_HANDLE數據類型,表示轉譯命令緩衝區之裝置的核心模式句柄。 裝置句柄會提供給聯集內的 D3DKMTRender 函式,D3DKMT_RENDER包含此函式,以便與 Microsoft Direct3D 第 10 版相容。
[in] hContext
D3DKMT_HANDLE數據類型,表示轉譯命令緩衝區之裝置內容的核心模式句柄。
[in] CommandOffset
位移,以位元組為單位,位移至命令緩衝區中的第一個命令。
[in] CommandLength
從位移零開始的命令緩衝區大小,以位元組為單位。
[in] AllocationCount
送出配置清單中的項目數目。
[in] PatchLocationCount
送出修補程式位置清單中的項目數目。
[out] pNewCommandBuffer
OpenGL ICD 在其下一次呼叫 D3DKMTRender 函式時所收到的命令緩衝區指標。 不論呼叫是否成功,驅動程式都必須在呼叫 D3DKMTRender 之後,一律更新其命令緩衝區的指標。
Windows 7 和更新版本支援:
[in]如果在 Flags 成員中設定 RenderKm 旗標,則為要轉譯之命令緩衝區的指標。
[in/out] NewCommandBufferSize
如果 ResizeCommandBuffer 位字段旗標是在 Flags 成員中指定 OpenGL ICD 要求下一個命令緩衝區的大小,以位元組為單位。 如果未指定 resizeCommandBuffer
根據目前的記憶體狀況,輸出大小可能不符合輸入大小。
[out] pNewAllocationList
OpenGL ICD 在其下一次呼叫 D3DKMTRender 函式時,接收做為配置清單的 D3DDDI_ALLOCATIONLIST 結構數位。 不論呼叫是否成功,驅動程式都必須在呼叫 D3DKMTRender 之後,一律更新配置清單的指標。
Windows 7 和更新版本支援:
[in]如果 RenderKm 旗標設定在 旗標 成員中,則為要轉譯的配置清單指標。
[in/out] NewAllocationListSize
如果 ResizeAllocationList 位欄位旗標是在 Flags 成員中指定 OpenGL ICD 要求下一個配置清單的項目數目。 如果未指定 resizeAllocationList
根據目前的記憶體狀況,輸出大小可能不符合輸入大小。
[out] pNewPatchLocationList
OpenGL ICD 在其下一次呼叫 D3DKMTRender 函式時,所接收的 D3DDDI_PATCHLOCATIONLIST 結構數位,做為修補程式位置清單。 不論呼叫是否成功,驅動程式都必須在呼叫 D3DKMTRender 之後,一律更新其修補程式位置清單的指標。
[in/out] NewPatchLocationListSize
如果 ResizePatchLocationList 位欄位旗標是在 Flags 成員中指定 OpenGL ICD 要求下一個修補位置清單的項目數。 如果未指定 resizePatchLocationList
根據目前的記憶體狀況,輸出大小可能不符合輸入大小。
[in] Flags
D3DKMT_RENDERFLAGS 結構,表示要轉譯之位字段旗標的命令緩衝區類型。
[in] PresentHistoryToken
重新導向呼叫顯示迷你埠驅動程式 DxgkDdiPresent 函式的目前歷程記錄令牌。
目前的歷程記錄令牌 是轉譯應用程式送出的數據封包,以通知桌面視窗管理員 (DWM) 轉譯已完成,且交換鏈結返回緩衝區已準備好呈現。
[in] BroadcastContextCount
BroadcastContext 指定之陣列中的其他內容數目。
[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
D3DKMT_HANDLE數據類型的陣列,代表將目前命令緩衝區廣播至之其他內容的核心模式句柄。 定義為 64 的D3DDDI_MAX_BROADCAST_CONTEXT常數會定義 OpenGL ICD 可以廣播目前命令緩衝區的內容數目上限。
hContext 成員指定且擁有命令緩衝區的原始內容不是 BroadcastContext 陣列中的元素。 例如,如果 BroadcastContext 陣列包含一個元素,OpenGL ICD 會將命令緩衝區傳送至擁有的內容(hContext),並廣播至該另一個內容。
[out] QueuedBufferCount
已排入佇列至 hContext 成員在提交之後所指定之內容的 DMA 緩衝區數目。
[out] NewCommandBuffer
OpenGL ICD 在其下一次呼叫 D3DKMTRender 函式時所收到的命令緩衝區指標。 不論呼叫是否成功,驅動程式都必須在呼叫 D3DKMTRender 之後,一律更新其命令緩衝區的指標。
Windows 7 和更新版本支援:
[in]如果在 Flags 成員中設定 RenderKm 旗標,則為要轉譯之命令緩衝區的指標。
pPrivateDriverData
這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始提供。
PrivateDriverDataSize
這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始提供。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmthk.h (包括 D3dkmthk.h) |