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 成员中指定了 BltColorFill 位字段标志,否则 hWindow 中的值可以 NULL

[in] VidPnSourceId

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

如果设置了 RestrictVidPnSource 位字段标志,并且 hWindow 成员 NULL,则 VidPnSourceId 成员指示全屏 bitblt 的输出 定向到 if RestrictVidPnSource 已设置,并且 hWindow 为非NULLVidPnSourceId 指示要限制窗口位块传输的输出。

[in] hSource

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

[in] hDestination

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

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

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

[in] Color

ARGB 32 位(请参阅 D3DDDIFORMAT 枚举)颜色填充或颜色键值。 在 标志 成员中设置 ColorFill 位字段标志时,将设置颜色填充的值。 当 SrcColorKeyDstColorKey 位字段标志在 标志 成员中设置时,将设置颜色键的值。 请注意,随时仅设置 ColorFillSrcColorKeyDstColorKey 位字段标志之一。

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

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

另请参阅

D3DDDIFORMAT

D3DKMTPresent

D3DKMT_PRESENTFLAGS

D3DKMT_PRESENTHISTORYTOKEN

D3DKMT_PRESENT_RGNS

RECT