PFND3D11_1DDI_CHECKDIRECTFLIPSUPPORT回调函数 (d3d10umddi.h)

由桌面窗口管理器调用 (DWM) 来验证用户模式驱动程序是否支持直接翻转操作,其中视频内存在应用程序的托管主分配与 DWM 的托管主分配之间无缝翻转。

语法

PFND3D11_1DDI_CHECKDIRECTFLIPSUPPORT Pfnd3d111DdiCheckdirectflipsupport;

void Pfnd3d111DdiCheckdirectflipsupport(
        D3D10DDI_HDEVICE unnamedParam1,
        D3D10DDI_HRESOURCE unnamedParam2,
        D3D10DDI_HRESOURCE unnamedParam3,
        UINT CheckDirectFlipFlags,
  [out] BOOL *pSupported
)
{...}

参数

unnamedParam1

hDevice [in]

显示设备的句柄 (图形上下文) 。

unnamedParam2

hResource1

应用程序的交换链中的资源。

unnamedParam3

hResource2

DWM 交换链中的资源。

CheckDirectFlipFlags

如果此参数的值为 D3D11_1DDI_CHECK_DIRECT_FLIP_IMMEDIATE,则无缝翻转应立即发生,并且不必与 VSync 中断同步。

[out] pSupported

如果驱动程序可以在应用程序的托管主分配与 DWM 的托管主分配之间无缝翻转视频内存,则设置为 TRUE 。 否则,设置为 FALSE

返回值

备注

在 DWM 尝试呈现给直接翻转交换链之前,至少调用一次此函数。 在每次模式更改发生后,或者在 DWM 出于任何原因重新创建自己的交换链后,也会调用它。

用户模式驱动程序应确保应用程序的托管主分配和 DWM 具有以下兼容资源:

  • 立体声资源。
  • 多个示例抗锯齿 (MSAA) 格式。
  • 重排格式。 如果重排只能在每个 VSync 间隔更改,请确保 CheckDirectFlipFlags 参数的值没有 D3D11_1DDI_CHECK_DIRECT_FLIP_IMMEDIATE
  • 应使用 D3DDDI_ALLOCATIONINFO 结构中的同一 VidPnSourceId 值创建这两个托管主分配。
  • 显示适配器配置已链接。
用户模式驱动程序可能需要调用内核模式驱动程序才能执行这些验证。 为此,请调用 pfnEscapeCb 回调函数,然后调用 DxgkCbGetHandleData 函数来访问内核模式驱动程序的资源分配数据。

要求

要求
最低受支持的客户端 Windows 8
最低受支持的服务器 Windows Server 2012
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

D3D11_1_DDI_CHECK_DIRECT_FLIP_FLAGS

D3DDDI_ALLOCATIONINFO

DxgkCbGetHandleData

pfnEscapeCb