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]用户模式显示驱动程序在其下一次调用 pfnRenderCb 函数时接收用作分配列表的 D3DDDI_ALLOCATIONLIST 结构的数组。
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 函数调用的唯一标识符。 对于与单线程用户模式 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) |