D3DKMT_PRESENT 结构 (d3dkmthk.h)

D3DKMT_PRESENT 结构描述当前操作。

语法

typedef struct _D3DKMT_PRESENT {
  union {
    [in] D3DKMT_HANDLE hDevice;
    [in] D3DKMT_HANDLE hContext;
  };
  void                           D3DKMT_PTR(
    HWND    unnamedParam1,
    hWindow unnamedParam2
  );
  [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;
  void                           D3DKMT_PTR(
    const RECT   *unnamedParam1,
    pSrcSubRects unnamedParam2
  );
  [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;
  void                           D3DKMT_PTR(
    D3DKMT_HANDLE          *unnamedParam1,
    BroadcastSrcAllocation unnamedParam2
  );
  void                           D3DKMT_PTR(
    D3DKMT_HANDLE          *unnamedParam1,
    BroadcastDstAllocation unnamedParam2
  );
       UINT                           PrivateDriverDataSize;
  void                           D3DKMT_PTR(
    PVOID              unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
       BOOLEAN                        bOptimizeForComposition;
} D3DKMT_PRESENT;

成员

[in] hDevice

D3DKMT_HANDLE数据类型,表示要呈现给设备的内核模式句柄。 设备句柄提供给D3DKMT_PRESENT包含的联合中的 D3DKMTPresent 函数,以便与 Microsoft Direct3D 版本 10 兼容。

[in] hContext

D3DKMT_HANDLE数据类型,表示要呈现的设备上下文的内核模式句柄。

void D3DKMT_PTR( HWND unnamedParam1, hWindow unnamedParam2)

[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 成员中的句柄为非零,则 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

pSrcSubRects 在演示时指定的子矩形区域的数目。

void D3DKMT_PTR( const RECT *unnamedParam1, pSrcSubRects unnamedParam2)

[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 标志时有效。

void D3DKMT_PTR( D3DKMT_HANDLE *unnamedParam1, BroadcastSrcAllocation unnamedParam2)

void D3DKMT_PTR( D3DKMT_HANDLE *unnamedParam1, BroadcastDstAllocation unnamedParam2)

PrivateDriverDataSize

专用驱动程序数据大小。

void D3DKMT_PTR( PVOID unnamedParam1, pPrivateDriverData unnamedParam2)

bOptimizeForComposition

指示设备是否针对组合进行优化。

要求

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

另请参阅

D3DDDIFORMAT

D3DKMTPresent

D3DKMT_PRESENTFLAGS

D3DKMT_PRESENTHISTORYTOKEN

D3DKMT_PRESENT_RGNS

矩形