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]用户模式显示驱动程序接收的 D3DDDI_PATCHLOCATIONLIST 结构数组,在下次调用 pfnRenderCb 函数时用作修补程序位置列表。
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 函数调用的唯一标识符。 对于与单线程用户模式 DDI 关联的上下文,从值 1 开始,对于与自由线程用户模式 DDI 关联的上下文,值范围为 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) |