PFND3DDDI_SETDISPLAYMODE回调函数 (d3dumddi.h)

SetDisplayMode 函数切换到 GDI 桌面不支持的显示模式或主模式。

语法

PFND3DDDI_SETDISPLAYMODE Pfnd3dddiSetdisplaymode;

HRESULT Pfnd3dddiSetdisplaymode(
  HANDLE hDevice,
  const D3DDDIARG_SETDISPLAYMODE *unnamedParam2
)
{...}

参数

hDevice

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

unnamedParam2

pData [in]

指向 D3DDDIARG_SETDISPLAYMODE 结构的指针,该结构指定用于设置显示模式的参数。

返回值

如果未成功设置显示模式,SetDisplayMode 将返回S_OK或适当的错误结果。

注解

Microsoft Direct3D 运行时调用 SetDisplayMode 以切换到 GDI 桌面不支持的显示模式或主模式。 以下列表描述了此类主要内容的示例:

  • 使用每通道 10 位 (10:10:10:2 创建的主要) 显示和呈现目标格式, (例如,D3DFMT_A2R10G10B10)
  • 多采样的初选,在扫描时执行多重采样
  • 全屏 Microsoft DirectX 版本 9.L 应用程序使用的持久主数据库
Direct3D 运行时调用用户模式显示驱动程序的 CreateResource 函数,以创建要扫描的主要副本。但是,驱动程序应将硬件编程为仅在调用其 SetDisplayMode 函数时进行扫描。 因此,运行时将 pData 参数指向的 D3DDDIARG_SETDISPLAYMODE 结构的 hResourceSubResourceIndex 成员设置为通过调用驱动程序的 CreateResource 函数创建的主节点。 然后,驱动程序应将 hResource 和 SubResourceIndex 表示的主分配句柄转换为主分配句柄。 驱动程序进行此转换后,驱动程序应在调用 pfnSetDisplayModeCb 函数时传递生成的句柄,该函数随后会启动对显示微型端口驱动程序的 DxgkDdiCommitVidPn 函数的调用。

用户模式显示驱动程序可以在调用 pfnSetDisplayModeCb 时设置 D3DDDICB_SETDISPLAYMODE 结构的 hPrimaryAllocation 成员,以扫描出任何分配。 但是,必须将分配标记为主 (即,用户模式显示驱动程序必须在调用 pfnAllocateCb 函数时,在 D3DDDI_ALLOCATIONINFO 结构的 Flags 成员中设置 Primary 位字段标志,以创建分配) 。

要求

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

另请参阅

D3DDDIARG_SETDISPLAYMODE

D3DDDI_DEVICEFUNCS

pfnSetDisplayModeCb