PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB回调函数 (d3dumddi.h)

pfnSetDisplayPrivateDriverFormatCb 函数更改视频演示源的专用格式属性。

语法

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

参数

hDevice

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

unnamedParam2

pData [in]

指向描述如何设置视频演示源格式的 D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT 结构的指针。

返回值

pfnSetDisplayPrivateDriverFormatCb 返回以下值之一:

返回代码 描述
S_OK 视频演示源已成功更改。
E_INVALIDARG 参数已验证并确定不正确。
E_FAIL pfnSetDisplayPrivateDriverFormatCb 无法更改视频演示源的专用格式属性。

此函数还可以返回其他 HRESULT 值。

言论

更改视频演示源的专用格式属性对于容纳全屏 DirectX 应用程序非常有用,当共享 GDI 主图面处于全屏 DirectX 应用程序的非最佳专用格式时,该应用程序可创建其翻转更改。 例如,假设显示微型端口驱动程序始终将 GDI 共享主图面创建为未重排。 但是,出于性能原因,用户模式显示驱动程序要求全屏翻转链中的所有图面都重排。 然后,用户模式显示驱动程序可以将后台缓冲区创建为重排缓冲区,并调用 pfnSetDisplayPrivateDriverFormatCb 将共享的 GDI 主图面更改为重排。

如果调用 pfnSetDisplayPrivateDriverFormatCb 失败,则用户模式显示驱动程序应继续,而无需更改视频演示源的专用格式属性。 在前面的示例中,驱动程序可以将共享主数据库保留为未重排,并使后台缓冲区重排,或者驱动程序可以将后退缓冲区更改为未重排格式。

如果用户模式显示驱动程序从调用 pfnSetDisplayModeCb 函数收到D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT错误,驱动程序可以执行以下作之一:

  • 更改主图面的专用格式属性,并再次调用 pfnSetDisplayModeCb
  • 调用 pfnSetDisplayPrivateDriverFormatCb 并尝试更改视频演示源的专用格式属性。 然后,驱动程序可以再次调用 pfnSetDisplayModeCb
仅当 D3DDDIARG_CREATEDEVICE 结构的 版本 成员设置为大于 7 时(由 hDevice 参数指定)在调用驱动程序的 CreateDevice 函数时,用户模式显示驱动程序才能调用 pfnSetDisplayPrivateDriverFormatCb

要求

要求 价值
最低支持的客户端 在 Windows Vista 和更高版本的 Windows作系统中可用。
目标平台 桌面
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb