PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB回调函数 (d3dumddi.h)

pfnSetDisplayPrivateDriverFormatCb 函数更改视频呈现源的 private-format 属性。

语法

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 无法更改视频呈现源的 private-format 属性。

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

注解

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

如果对 pfnSetDisplayPrivateDriverFormatCb 的调用失败,用户模式显示驱动程序应继续运行,而不更改视频呈现源的专用格式属性。 在前面的示例中,驱动程序可以将共享主副本保留为未重排并重排后台缓冲区,或者驱动程序可以将后台缓冲区更改为未重排格式。

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

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

要求

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

另请参阅

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb