IDXGIFactory2::CreateSwapChainForHwnd 方法 (dxgi1_2.h)

创建与 HWND 句柄关联的交换链,该句柄指向交换链的输出窗口。

语法

HRESULT CreateSwapChainForHwnd(
  [in]           IUnknown                              *pDevice,
  [in]           HWND                                  hWnd,
  [in]           const DXGI_SWAP_CHAIN_DESC1           *pDesc,
  [in, optional] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
  [in, optional] IDXGIOutput                           *pRestrictToOutput,
  [out]          IDXGISwapChain1                       **ppSwapChain
);

参数

[in] pDevice

对于 Direct3D 11 和早期版本的 Direct3D,这是指向交换链的 Direct3D 设备的指针。 对于 Direct3D 12,这是指向直接命令队列的指针, (引用 ID3D12CommandQueue) 。 此参数不能为 NULL

[in] hWnd

CreateSwapChainForHwnd 创建的交换链关联的 HWND 句柄。 此参数不能为 NULL

[in] pDesc

指向交换链说明 DXGI_SWAP_CHAIN_DESC1 结构的指针。 此参数不能为 NULL

[in, optional] pFullscreenDesc

指向 DXGI_SWAP_CHAIN_FULLSCREEN_DESC 结构的指针,用于描述全屏交换链。 可以选择设置此参数以创建全屏交换链。 将其设置为 NULL 可创建窗口交换链。

[in, optional] pRestrictToOutput

指向要限制内容的输出 的 IDXGIOutput 接口的指针。 还必须在 IDXGISwapChain1::P resent1 调用中传递 DXGI_PRESENT_RESTRICT_TO_OUTPUT 标志,以强制内容在任何其他输出上显示为黑屏。 如果要将内容限制为不同的输出,则必须创建新的交换链。 但是,可以根据 DXGI_PRESENT_RESTRICT_TO_OUTPUT 标志有条件地限制内容。

如果不想将内容限制为输出目标,请将此参数设置为 NULL

[out] ppSwapChain

指向变量的指针,该变量接收指向 CreateSwapChainForHwnd 创建的交换链的 IDXGISwapChain1 接口的指针。

返回值

CreateSwapChainForHwnd 返回:

  • 如果成功创建了交换链,S_OK。
  • 如果内存不可用,则E_OUTOFMEMORY以完成操作。
  • DXGI_ERROR_INVALID_CALL 调用应用程序提供无效数据时,例如,如果 pDescppSwapChainNULL,或者 pDesc 数据成员无效。
  • 可能是 DXGI_ERROR 主题中描述的其他错误代码,这些错误代码由传递给 pDevice 的设备类型定义。

适用于 Windows 7 的平台更新:在安装了适用于 Windows 7 的平台更新的 Windows 7 或 Windows Server 2008 R2 上不支持DXGI_SCALING_NONE,并导致 CreateSwapChainForHwnd 在调用时返回DXGI_ERROR_INVALID_CALL。 有关 Windows 7 平台更新的详细信息,请参阅 适用于 Windows 7 的平台更新

注解

注意 请勿在 Windows 应用商店应用中使用此方法。 请改用 IDXGIFactory2::CreateSwapChainForCoreWindow
 
如果将 pDesc 指向交换链) (widthHeightDXGI_SWAP_CHAIN_DESC1 成员指定为零,则运行时将从 hWnd 参数指定的输出窗口中获取大小。

随后可以调用 IDXGISwapChain1::GetDesc1 方法来检索分配的宽度或高度值。

由于一次只能将一个翻转演示文稿模型交换链与 HWND 关联,因此,如果尝试销毁翻转演示文稿模型交换链并将其替换为另一个交换链,则延迟销毁对象的 Microsoft Direct3D 11 策略可能会导致问题。 有关这种情况的详细信息,请参阅 Flip 演示文稿交换链的延迟销毁问题

有关如何为交换链的后台缓冲区选择格式的信息,请参阅 转换颜色空间的数据

要求

要求
最低受支持的客户端 适用于 Windows 7 的Windows 8和平台更新 [仅限桌面应用]
最低受支持的服务器 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [仅限桌面应用]
目标平台 Windows
标头 dxgi1_2.h
Library Dxgi.lib

另请参阅

为获得最佳性能,请使用 DXGI 翻转模型

IDXGIFactory2