D3DKMT_RENDER结构 (d3dkmthk.h)

D3DKMT_RENDER 结构描述要呈现的当前命令缓冲区。

语法

typedef struct _D3DKMT_RENDER {
  union {
    [in]     D3DKMT_HANDLE hDevice;
    [in]     D3DKMT_HANDLE hContext;
  };
  [in]     UINT                                  CommandOffset;
  [in]     UINT                                  CommandLength;
  [in]     UINT                                  AllocationCount;
  [in]     UINT                                  PatchLocationCount;
  [out]    VOID                                  *pNewCommandBuffer;
  [in/out] UINT                                  NewCommandBufferSize;
  [out]    D3DDDI_ALLOCATIONLIST                 *pNewAllocationList;
  [in/out] UINT                                  NewAllocationListSize;
  [out]    D3DDDI_PATCHLOCATIONLIST              *pNewPatchLocationList;
  [in/out] UINT                                  NewPatchLocationListSize;
  [in]     D3DKMT_RENDERFLAGS                    Flags;
  [in]     D3DKMT_ALIGN64 ULONGLONG              PresentHistoryToken;
  [in]     ULONG                                 BroadcastContextCount;
           D3DKMT_HANDLE                         BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [out]    ULONG                                 QueuedBufferCount;
  [out]    D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
           VOID                                  *pPrivateDriverData;
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

成员

[in] hDevice

D3DKMT_HANDLE数据类型,表示将命令缓冲区呈现到设备的内核模式句柄。 为了与 Microsoft Direct3D 版本 10 兼容,D3DKMT_RENDER包含的联合中向 D3DKMTRender 函数提供设备句柄。

[in] hContext

D3DKMT_HANDLE数据类型,表示命令缓冲区呈现到的设备上下文的内核模式句柄。

[in] CommandOffset

命令缓冲区中第一个命令的偏移量(以字节为单位)。

[in] CommandLength

命令缓冲区的大小(以字节为单位),从偏移量零开始。

[in] AllocationCount

提交的分配列表中的元素数。

[in] PatchLocationCount

提交的修补程序位置列表中的元素数。

[out] pNewCommandBuffer

指向 OpenGL ICD 接收的命令缓冲区的指针,用于下一次调用 D3DKMTRender 函数。 驱动程序必须始终在调用 D3DKMTRender 后更新其指向命令缓冲区的指针,无论调用是否成功。

在 Windows 7 及更高版本中受支持:

[in]指向在 Flags 成员中设置了 RenderKm 标志时要呈现的命令缓冲区的指针。

[in/out] NewCommandBufferSize

如果在 Flags 成员中指定 ResizeCommandBuffer 位字段标志,则 OpenGL ICD 请求下一个命令缓冲区的大小(以字节为单位)。 如果未指定 ResizeCommandBuffer ,则 忽略 NewCommandBufferSize 中的值。 在输出时,驱动程序接收要使用的下一个命令缓冲区的大小(以字节为单位)。

根据当前内存条件,输出大小可能与输入大小不匹配。

[out] pNewAllocationList

OpenGL ICD 接收的 D3DDDI_ALLOCATIONLIST 结构数组,在下次调用 D3DKMTRender 函数时用作分配列表。 驱动程序必须始终在调用 D3DKMTRender 后更新其指向分配列表的指针,无论调用是否成功。

在 Windows 7 及更高版本中受支持:

[in]如果 Flags 成员中设置了 RenderKm 标志,则指向要呈现的分配列表的指针。

[in/out] NewAllocationListSize

如果在 Flags 成员中指定 ResizeAllocationList 位字段标志,则 OpenGL ICD 为下一个分配列表请求的元素数。 如果未指定 ResizeAllocationList ,则 忽略 NewAllocationListSize 中的值。 在输出时,驱动程序接收在提交下一个命令缓冲区时将在分配数组中可用的元素数。

根据当前内存条件,输出大小可能与输入大小不匹配。

[out] pNewPatchLocationList

OpenGL ICD 接收的 D3DDDI_PATCHLOCATIONLIST 结构数组,在下次调用 D3DKMTRender 函数时用作修补程序位置列表。 无论调用是否成功,驱动程序都必须在调用 D3DKMTRender 后始终更新其指向修补程序位置列表的指针。

[in/out] NewPatchLocationListSize

如果在 Flags 成员中指定 ResizePatchLocationList 位字段标志,OpenGL ICD 为下一个修补程序位置列表请求的元素数。 如果未指定 ResizePatchLocationList ,则会忽略 NewPatchLocationListSize 中的值。 在输出时,驱动程序接收在提交下一个命令缓冲区时将在修补程序位置数组中可用的元素数。

根据当前内存条件,输出大小可能与输入大小不匹配。

[in] Flags

一个D3DKMT_RENDERFLAGS结构,指示要呈现的命令缓冲区的类型(以位字段标志表示)。

[in] PresentHistoryToken

对显示微型端口驱动程序的 DxgkDdiPresent 函数的重定向调用的当前历史记录标记。

当前历史记录令牌是呈现应用提交的数据包,以通知桌面窗口管理器 (DWM) 呈现已完成并且交换链回缓冲区已准备好显示。

[in] BroadcastContextCount

BroadcastContext 指定的数组中其他上下文的数目。

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

一个D3DKMT_HANDLE数据类型的数组,这些数据类型表示将当前命令缓冲区广播到的其他上下文的内核模式句柄。 D3DDDI_MAX_BROADCAST_CONTEXT常量(定义为 64)定义 OpenGL ICD 可以将当前命令缓冲区广播到的最大上下文数。

hContext 成员指定并拥有命令缓冲区的原始上下文不是 BroadcastContext 数组中的元素。 例如,如果 BroadcastContext 数组包含一个元素,则 OpenGL ICD 会将命令缓冲区发送到拥有的上下文 (hContext) 并广播到该附加上下文。

[out] QueuedBufferCount

排队到 hContext 成员在提交后指定的上下文的 DMA 缓冲区数。

[out] NewCommandBuffer

指向 OpenGL ICD 接收的命令缓冲区的指针,用于下一次调用 D3DKMTRender 函数。 驱动程序必须始终在调用 D3DKMTRender 后更新其指向命令缓冲区的指针,无论调用是否成功。

在 Windows 7 及更高版本中受支持:

[in]指向在 Flags 成员中设置了 RenderKm 标志时要呈现的命令缓冲区的指针。

pPrivateDriverData

此成员为保留成员,应设置为零。

此成员从 Windows 7 开始可用。

PrivateDriverDataSize

此成员为保留成员,应设置为零。

此成员从 Windows 7 开始可用。

要求

要求
最低受支持的客户端 Windows Vista
标头 d3dkmthk.h (包括 D3dkmthk.h)

另请参阅

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent