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 成员中指定了 BltColorFill 位字段标志。

[in] VidPnSourceId

如果在 Flags 成员中设置了 RestrictVidPnSource 位字段标志,则视频呈现网络路径中视频当前源的从零开始的标识号 (VidPN) 拓扑中限制显示。

如果设置了 RestrictVidPnSource 位字段标志并且 hWindow 成员为 NULL则 VidPnSourceId 成员指示将全屏 bitblt 定向到哪个输出(如果设置了 RestrictVidPnSourcehWindow 为非 NULL), 则 VidPnSourceId 指示将窗口位块传输限制到哪个输出。

[in] hSource

如果 Flags 成员中未设置 ColorFill 位字段标志,则表示系统内存或主要分配的内核模式句柄D3DKMT_HANDLE数据类型。

[in] hDestination

表示目标分配的内核模式句柄的D3DKMT_HANDLE数据类型。 如果目标未知,hDestination 可以为零。

仅当在 Flags 成员中设置了 Blt 位字段标志时,hDestination 中的句柄才有效。

如果 hDestination 成员中的句柄为非零,则 hDestinationhWindow 句柄必须引用两个大小相同的不同主分配,hDevice 成员中的设备必须拥有由 VidPnSourceId 成员标识的视频当前源,并且必须在 Flags 成员中设置 SrcRectValid 位字段标志。

[in] Color

ARGB 32 位 (看到 D3DDDIFORMAT 枚举) 颜色填充或颜色键值 。 在 Flags 成员中设置 ColorFill 位字段标志时,将设置颜色填充的值。 在 Flags 成员中设置 SrcColorKeyDstColorKey 位字段标志时,将设置颜色键的值。 请注意,在任何时候仅设置 ColorFillSrcColorKeyDstColorKey 位字段标志之一。

如果主要格式为淡化 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结构,用于在位字段标志中标识如何显示。 请注意, ColorFillSrcColorKeyDstColorKey 位字段标志是互斥的。

[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)

另请参阅

D3DDDIFORMAT

D3DKMTPresent

D3DKMT_PRESENTFLAGS

D3DKMT_PRESENTHISTORYTOKEN

D3DKMT_PRESENT_RGNS

矩形