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数据类型,表示命令缓冲区呈现给设备的内核模式句柄。 设备句柄提供给联合中的 D3DKMTRender 函数,D3DKMT_RENDER包含与 Microsoft Direct3D 版本 10 兼容。
[in] hContext
D3DKMT_HANDLE数据类型,表示命令缓冲区呈现到的设备上下文的内核模式句柄。
[in] CommandOffset
命令缓冲区中第一个命令的偏移量(以字节为单位)。
[in] CommandLength
从偏移量零开始的命令缓冲区的大小(以字节为单位)。
[in] AllocationCount
提交的分配列表中的元素数。
[in] PatchLocationCount
提交的修补程序位置列表中的元素数。
[out] pNewCommandBuffer
指向 OpenGL ICD 在其下一次调用 D3DKMTRender 函数时使用的命令缓冲区的指针。 无论调用是否成功,驱动程序都必须始终更新其指向命令缓冲区的指针,D3DKMTRender。
在 Windows 7 及更高版本中受支持:
[in]如果在 标志 成员中设置 RenderKm 标志,则指向要呈现的命令缓冲区的指针。
[in/out] NewCommandBufferSize
如果 ResizeCommandBuffer 位字段标志在 标志 成员中指定了 OpenGL ICD 请求下一个命令缓冲区的大小(以字节为单位)。 如果未指定 resizeCommandBuffer
根据当前内存条件,输出大小可能与输入大小不匹配。
[out] pNewAllocationList
OpenGL ICD 在其下一次调用 D3DKMTRender 函数时接收用作分配列表的 D3DDDI_ALLOCATIONLIST 结构的数组。 无论调用是否成功,驱动程序都必须始终更新其指向分配列表的指针, D3DKMTRender。
在 Windows 7 及更高版本中受支持:
[in]如果在 标志 成员中设置 RenderKm 标志,则指向要呈现的分配列表的指针。
[in/out] NewAllocationListSize
如果 ResizeAllocationList 位字段标志在 标志 成员中指定 OpenGL ICD 请求下一个分配列表的元素数。 如果未指定 resizeAllocationList
根据当前内存条件,输出大小可能与输入大小不匹配。
[out] pNewPatchLocationList
OpenGL ICD 在其下一次调用 D3DKMTRender 函数时接收用作修补位置列表的 D3DDDI_PATCHLOCATIONLIST 结构的数组。 无论调用是否成功,驱动程序都必须始终更新指向修补程序位置列表的指针, D3DKMTRender。
[in/out] NewPatchLocationListSize
如果 ResizePatchLocationList 位字段标志在 标志 成员中指定了 OpenGL ICD 请求下一个修补位置列表的元素数。 如果未指定 resizePatchLocationList
根据当前内存条件,输出大小可能与输入大小不匹配。
[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]如果在 标志 成员中设置 RenderKm 标志,则指向要呈现的命令缓冲区的指针。
pPrivateDriverData
此成员是保留的,应设置为零。
此成员从 Windows 7 开始可用。
PrivateDriverDataSize
此成员是保留的,应设置为零。
此成员从 Windows 7 开始可用。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
标头 | d3dkmthk.h (包括 D3dkmthk.h) |