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