D3DKMT_PRESENT结构(d3dkmthk.h)
D3DKMT_PRESENT结构描述当前操作。
语法
typedef struct _D3DKMT_PRESENT {
union {
[in] D3DKMT_HANDLE hDevice;
[in] D3DKMT_HANDLE hContext;
};
[in] HWND hWindow;
[in] D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
[in] D3DKMT_HANDLE hSource;
[in] D3DKMT_HANDLE hDestination;
[in] UINT Color;
[in] RECT DstRect;
[in] RECT SrcRect;
[in] UINT SubRectCnt;
[in] const RECT *pSrcSubRects;
[in] UINT PresentCount;
[in] D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
[in] D3DKMT_PRESENTFLAGS Flags;
[in] ULONG BroadcastContextCount;
D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
[in] HANDLE PresentLimitSemaphore;
[in] D3DKMT_PRESENTHISTORYTOKEN PresentHistoryToken;
D3DKMT_PRESENT_RGNS *pPresentRegions;
union {
D3DKMT_HANDLE hAdapter;
D3DKMT_HANDLE hIndirectContext;
};
UINT Duration;
D3DKMT_HANDLE *BroadcastSrcAllocation;
D3DKMT_HANDLE *BroadcastDstAllocation;
UINT PrivateDriverDataSize;
PVOID pPrivateDriverData;
BOOLEAN bOptimizeForComposition;
} D3DKMT_PRESENT;
成员
[in] hDevice
D3DKMT_HANDLE数据类型,表示要呈现给设备的内核模式句柄。 设备句柄提供给联合中的 D3DKMTPresent 函数,D3DKMT_PRESENT包含与 Microsoft Direct3D 版本 10 兼容。
[in] hContext
D3DKMT_HANDLE数据类型,表示要呈现到的设备上下文的内核模式句柄。
[in] hWindow
位块传输(bitblt)应用于的窗口的句柄。 NULL 值 指示桌面窗口。 除非在 Flags 成员中指定了 Blt 或 ColorFill 位字段标志,否则 hWindow 中的值可以 NULL。
[in] VidPnSourceId
如果 RestrictVidPnSource 位字段标志在 标志 成员中设置,则视频演示源的路径(VidPN)拓扑中要限制显示的视频呈现源的从零开始的标识号。
如果设置了 RestrictVidPnSource 位字段标志,并且 hWindow 成员 NULL,则 VidPnSourceId 成员指示全屏 bitblt 的输出 定向到 if RestrictVidPnSource 已设置,并且 hWindow 为非NULL,VidPnSourceId 指示要限制窗口位块传输的输出。
[in] hSource
如果 ColorFill 位字段标志未在 标志 成员中设置,则表示系统内存或主要分配的内核模式句柄D3DKMT_HANDLE数据类型。
[in] hDestination
表示目标分配的内核模式句柄的D3DKMT_HANDLE数据类型。 如果目标未知,hDestination 可以为零。
仅当在 标志 成员中设置 Blt 位字段标志时,hDestination 中的句柄才有效。
如果 hDestination 成员中的句柄为非零,则 hDestination 和 hWindow 句柄必须引用大小相同的两个不同的主分配: hDevice 成员中的设备必须拥有由 VidPnSourceId 成员标识的视频演示源,并且必须在 标志 成员中设置 SrcRectValid 位字段标志。
[in] Color
ARGB 32 位(请参阅 D3DDDIFORMAT 枚举)颜色填充或颜色键值。 在 标志 成员中设置 ColorFill 位字段标志时,将设置颜色填充的值。 当 SrcColorKey 或 DstColorKey 位字段标志在 标志 成员中设置时,将设置颜色键的值。 请注意,随时仅设置 ColorFill、SrcColorKey和 DstColorKey 位字段标志之一。
如果主要格式为淡化 RGB,Color 包含调色板索引,而不是D3DDDIFORMAT中的D3DDDIFMT_A8R8G8B8值。
[in] DstRect
bitblt 的可选目标 RECT。 仅当 DstRectValid 位字段标志在 标志 成员中设置时,才会使用目标 RECT。
[in] SrcRect
bitblt 的可选源 RECT。 仅当在 标志 成员中设置 SrcRectValid 位字段标志时,才使用源 RECT。
[in] SubRectCnt
pSrcSubRects 的子区域数 指向演示时指定的子区域数。
[in] pSrcSubRects
指向呈现时指定的子区域(RECT)数组的指针。
[in] PresentCount
可为由 hDevice指定的设备排队的当前操作数。
[in] FlipInterval
一个 D3DDDI_FLIPINTERVAL_TYPE类型的值,该值指示翻转间隔(即,如果翻转发生在零、一、二、三或四个垂直同步之后)。
[in] Flags
一个 D3DKMT_PRESENTFLAGS 结构,用于标识位字段标志中的显示方式。 请注意,ColorFill、SrcColorKey,DstColorKey 位字段标志互斥。
[in] BroadcastContextCount
BroadcastContext 指定的数组中的其他上下文数。
[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
D3DKMT_HANDLE数据类型的数组,这些数据类型表示内核模式句柄的附加上下文,以便将当前当前操作广播到其中。 D3DDDI_MAX_BROADCAST_CONTEXT常量(定义为 64)定义 OpenGL ICD 可以将当前当前操作广播到的最大上下文数。
仅对翻转操作支持广播。 若要广播翻转操作,显示微型端口驱动程序必须支持基于内存的 I/O(MMIO)翻转。 为了指示支持 MMIO 翻转,显示微型端口驱动程序在调用 DxgkDdiQueryAdapterInfo 函数时,在 FlipCapsDXGK_DRIVERCAPS 结构的成员中设置 FlipOnVSyncMmIo 位字段标志。
hContext 成员指定的原始上下文,OpenGL ICD 表示不是 BroadcastContext 数组中的元素。 例如,如果 BroadcastContext 数组包含一个元素,则 OpenGL ICD 会将当前操作发送到拥有上下文(hContext)并广播到该另一个上下文。
[in] PresentLimitSemaphore
当前限制信号灯的句柄。
从 Windows 7 开始支持。
[in] PresentHistoryToken
标识当前操作类型的 D3DKMT_PRESENTHISTORYTOKEN 结构。
从 Windows 7 开始支持。
pPresentRegions
指向标识脏区域和移动区域的 D3DKMT_PRESENT_RGNS 结构的指针。
从 Windows 8 开始支持。
hAdapter
图形适配器的句柄。
hIndirectContext
用于通过 DoD 演示路径进行重定向的间接适配器上下文。 仅当设置了 PresentIndirect 标志时,此成员才有效。
Duration
每个存在的持续时间。 仅当设置了 DurationValid 标志时有效。
BroadcastSrcAllocation
源的链接显示适配器。
BroadcastDstAllocation
目标的链接显示适配器。
PrivateDriverDataSize
专用驱动程序数据大小。
pPrivateDriverData
指向包含可选专用驱动程序数据的缓冲区的指针。
bOptimizeForComposition
指示设备是否针对组合进行优化。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
标头 | d3dkmthk.h (包括 D3dkmthk.h) |