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)

另请参阅

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb