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)

另请参阅

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb