D3DDDICB_RENDER 結構 (d3dumddi.h)
D3DDDICB_RENDER結構描述要轉譯的目前命令緩衝區。
語法
typedef struct _D3DDDICB_RENDER {
UINT CommandLength;
UINT CommandOffset;
UINT NumAllocations;
UINT NumPatchLocations;
VOID *pNewCommandBuffer;
UINT NewCommandBufferSize;
D3DDDI_ALLOCATIONLIST *pNewAllocationList;
UINT NewAllocationListSize;
D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
UINT NewPatchLocationListSize;
D3DDDICB_RENDERFLAGS Flags;
HANDLE hContext;
UINT BroadcastContextCount;
HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
ULONG QueuedBufferCount;
D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
D3DDDI_MARKERLOGTYPE MarkerLogType;
UINT RenderCBSequence;
union {
struct {
UINT FirstAPISequenceNumberHigh;
UINT CompletedAPISequenceNumberLow0Size;
UINT CompletedAPISequenceNumberLow1Size;
UINT BegunAPISequenceNumberLow0Size;
UINT BegunAPISequenceNumberLow1Size;
};
UINT BatchedMarkerDataCount;
};
union {
struct {
const UINT *pCompletedAPISequenceNumberLow0;
const UINT *pCompletedAPISequenceNumberLow1;
const UINT *pBegunAPISequenceNumberLow0;
const UINT *pBegunAPISequenceNumberLow1;
};
const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
};
} D3DDDICB_RENDER;
成員
CommandLength
[in]命令緩衝區的大小,以位元組為單位,從位移零開始。
CommandOffset
[in]位移,以位元組為單位,到命令緩衝區中的第一個命令。
NumAllocations
[in]配置清單中的項目數目。
NumPatchLocations
[in]修補程式位置清單中的項目數目。
pNewCommandBuffer
[out]使用者模式顯示驅動程式在其下一次呼叫 pfnRenderCb 函式時所使用的命令緩衝區指標。
NewCommandBufferSize
[in/out]使用者模式顯示驅動程式要求下一個命令緩衝區的大小,以位元組為單位。
驅動程式會接收要使用的下一個命令緩衝區大小,以位元組為單位。
pNewAllocationList
[out] D3DDDI_ALLOCATIONLIST 結構的數位,使用者模式顯示驅動程式會在下一次呼叫 pfnRenderCb 函式時收到做為配置清單使用。
NewAllocationListSize
[in/out]使用者模式顯示驅動程式要求下一個配置清單的項目數目。
驅動程式會接收配置清單的項目數,當提交下一個命令緩衝區時,該清單可供使用。
pNewPatchLocationList
[out]使用者模式顯示驅動程式在其下一次呼叫 pfnRenderCb 函式時,用來做為修補程式位置清單的D3DDDI_PATCHLOCATIONLIST結構數位。
NewPatchLocationListSize
[in/out]使用者模式顯示驅動程式要求下一個修補程式位置清單的項目數目。
驅動程式會收到修補程式位置清單的元素數目,此清單會在提交下一個命令緩衝區時使用。
Flags
[in] D3DDDICB_RENDERFLAGS 結構,表示要轉譯之命令緩衝區的相關信息。
hContext
[in]驅動程式提交轉譯作業至的內容句柄。 使用者模式顯示驅動程式先前藉由呼叫 pfnCreateContextCb 函式來建立此內容。
BroadcastContextCount
[in] BroadcastContext 成員指定之陣列中的其他內容數目。
BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
[in]要廣播目前命令緩衝區之其他內容的句柄陣列。 D3DDDI_MAX_BROADCAST_CONTEXT常數定義為 64,定義使用者模式顯示驅動程式可以廣播目前命令緩衝區的其他內容數目上限。
hContext 成員所指定且擁有命令緩衝區的原始內容不是 BroadcastContext 陣列中的元素。 例如,如果 BroadcastContext 陣列包含一個專案,則使用者模式顯示驅動程式會將命令緩衝區傳送至擁有的內容 (hContext) ,並廣播至該另一個內容。
QueuedBufferCount
[out]排入佇列至 hContext 成員在目前提交之後所指定之內容的 DMA 緩衝區數目。
NewCommandBuffer
這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始可供使用。
pPrivateDriverData
[in]這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始可供使用。
PrivateDriverDataSize
[in]這個成員是保留的,而且應該設定為零。
此成員從 Windows 7 開始可供使用。
MarkerLogType
D3DDDI_MARKERLOGTYPE列舉,指出使用者模式顯示驅動程式所支援之 Windows 事件追蹤 (ETW) 記錄中的標記類型。
RenderCBSequence
每個 pfnRenderCb 函數調用的唯一標識碼。 針對與單個線程使用者模式 DIS 相關聯的內容,從值 1 開始,針對與自由線程使用者模式 DIS 相關聯的內容,範圍為 0x80000001 值。 使用者模式顯示驅動程序必須在任何引擎上增加每個 pfnRenderCb 呼叫的值。
FirstAPISequenceNumberHigh
驅動程式用來傳遞內容的 API 序號。
CompletedAPISequenceNumberLow0Size
驅動程式用來傳遞內容的 API 序號。
CompletedAPISequenceNumberLow1Size
驅動程式用來傳遞內容的 API 序號。
BegunAPISequenceNumberLow0Size
驅動程式用來傳遞內容的 API 序號。
BegunAPISequenceNumberLow1Size
驅動程式用來傳遞內容的 API 序號。
BatchedMarkerDataCount
pCompletedAPISequenceNumberLow0
驅動程式用來傳遞內容的 API 序號的指標。
pCompletedAPISequenceNumberLow1
驅動程式用來傳遞內容的 API 序號的指標。
pBegunAPISequenceNumberLow0
驅動程式用來傳遞內容的 API 序號的指標。
pBegunAPISequenceNumberLow1
驅動程式用來傳遞內容的 API 序號的指標。
pBatchedMarkerData
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dumddi.h (包含 D3dumddi.h) |