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数据类型,表示要呈现给设备的内核模式句柄。 设备句柄提供给D3DKMT_PRESENT包含的联合中的 D3DKMTPresent 函数,以便与 Microsoft Direct3D 版本 10 兼容。
[in] hContext
D3DKMT_HANDLE数据类型,表示要呈现的设备上下文的内核模式句柄。
[in] hWindow
位块传输 (bitblt) 适用的窗口的句柄。 NULL 值表示 桌面窗口。 hWindow 中的值可以为 NULL,除非在 Flags 成员中指定了 Blt 或 ColorFill 位字段标志。
[in] VidPnSourceId
如果在 Flags 成员中设置了 RestrictVidPnSource 位字段标志,则视频呈现网络路径中视频当前源的从零开始的标识号 (VidPN) 拓扑中限制显示。
如果设置了 RestrictVidPnSource 位字段标志并且 hWindow 成员为 NULL, 则 VidPnSourceId 成员指示将全屏 bitblt 定向到哪个输出(如果设置了 RestrictVidPnSource 且 hWindow 为非 NULL), 则 VidPnSourceId 指示将窗口位块传输限制到哪个输出。
[in] hSource
如果 Flags 成员中未设置 ColorFill 位字段标志,则表示系统内存或主要分配的内核模式句柄D3DKMT_HANDLE数据类型。
[in] hDestination
表示目标分配的内核模式句柄的D3DKMT_HANDLE数据类型。 如果目标未知,hDestination 可以为零。
仅当在 Flags 成员中设置了 Blt 位字段标志时,hDestination 中的句柄才有效。
如果 hDestination 成员中的句柄为非零,则 hDestination 和 hWindow 句柄必须引用两个大小相同的不同主分配,hDevice 成员中的设备必须拥有由 VidPnSourceId 成员标识的视频当前源,并且必须在 Flags 成员中设置 SrcRectValid 位字段标志。
[in] Color
ARGB 32 位 (看到 D3DDDIFORMAT 枚举) 颜色填充或颜色键值 。 在 Flags 成员中设置 ColorFill 位字段标志时,将设置颜色填充的值。 在 Flags 成员中设置 SrcColorKey 或 DstColorKey 位字段标志时,将设置颜色键的值。 请注意,在任何时候仅设置 ColorFill、 SrcColorKey 和 DstColorKey 位字段标志之一。
如果主要格式为淡化 RGB, 则 Color 包含调色板索引,而不是D3DDDIFORMAT D3DDDIFMT_A8R8G8B8值。
[in] DstRect
bitblt 的可选目标 RECT 。 仅当在 Flags 成员中设置了 DstRectValid 位字段标志时,才使用目标 RECT。
[in] SrcRect
bitblt 的可选源 RECT。 仅当在 Flags 成员中设置了 SrcRectValid 位字段标志时,才使用源 RECT。
[in] SubRectCnt
pSrcSubRect 在演示时指定的子矩形区域的数目。
[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 函数时,在 DXGK_DRIVERCAPS 结构的 FlipCaps 成员中设置 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) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈