PFND3DDDI_CHECKDIRECTFLIPSUPPORT回调函数 (d3dumddi.h)
由桌面窗口管理器 (DWM) 调用以验证用户模式驱动程序是否支持直接翻转作,其中视频内存在应用程序的托管主分配与 DWM 的托管主分配之间无缝翻转。
语法
PFND3DDDI_CHECKDIRECTFLIPSUPPORT Pfnd3dddiCheckdirectflipsupport;
HRESULT Pfnd3dddiCheckdirectflipsupport(
HANDLE hDevice,
D3DDDIARG_CHECKDIRECTFLIPSUPPORT *unnamedParam2
)
{...}
参数
hDevice
显示设备的句柄(图形上下文)。
unnamedParam2
pData [in, out]
指向定义作参数的 D3DDDIARG_CHECKDIRECTFLIPSUPPORT 结构的指针。
返回值
如果未成功执行作,则返回S_OK或适当的错误结果。
言论
在 DWM 尝试呈现到直接翻转交换链之前,至少调用一次此函数。 在每个模式更改发生或 DWM 出于任何原因重新创建自己的交换链之后,也会调用它。
用户模式驱动程序应确保应用程序的托管主分配和 DWM 具有以下兼容资源:
- 立体声资源。
- 多个示例抗锯齿(MSAA)格式。
- 重排格式。 如果重排只能在每个 VSync 间隔更改,请确保 D3DDDI_CHECK_DIRECT_FLIP_FLAGS 结构的 CheckDirectFlipFlags 成员没有 D3D11_1DDI_CHECK_DIRECT_FLIP_IMMEDIATE的值。
- 应使用 D3DDDI_ALLOCATIONINFO 结构中的同一 VidPnSourceId 值创建两个托管主分配。
- 显示适配器配置已链接。
由于 DWM 通常使用最高可能Microsoft Direct3D 功能级别创建自己的设备,因此如果硬件支持大于版本 9.3 的 Direct3D 设备驱动程序接口(DDI),DWM 将不会调用此函数。 但是,任何 Microsoft Direct3D 9 驱动程序都应实现此函数以启用 Direct Flip 用户体验。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
支持的最低服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |