Поделиться через


Метод 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

Дескриптор HWND , связанный с цепочкой буферов, создаваемой CreateSwapChainForHwnd . Этот параметр не может иметь значение NULL.

[in] pDesc

Указатель на структуру DXGI_SWAP_CHAIN_DESC1 для описания цепочки буферов. Этот параметр не может иметь значение NULL.

[in, optional] pFullscreenDesc

Указатель на структуру DXGI_SWAP_CHAIN_FULLSCREEN_DESC для описания цепочки буферов в полноэкранном режиме. При необходимости этот параметр можно задать для создания цепочки буферов в полноэкранном режиме. Присвойте ему значение NULL , чтобы создать цепочку буферов с окном.

[in, optional] pRestrictToOutput

Указатель на интерфейс IDXGIOutput для выходных данных для ограничения содержимого. Кроме того, необходимо передать флаг DXGI_PRESENT_RESTRICT_TO_OUTPUT в вызове IDXGISwapChain1::P resent1 , чтобы содержимое было затемнено в любых других выходных данных. Если вы хотите ограничить содержимое другими выходными данными, необходимо создать новую цепочку буферов. Однако можно условно ограничить содержимое на основе флага DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Задайте для этого параметра значение NULL , если вы не хотите ограничивать содержимое целевым объектом вывода.

[out] ppSwapChain

Указатель на переменную, которая получает указатель на интерфейс IDXGISwapChain1 для цепочки буферов, создаваемой CreateSwapChainForHwnd .

Возвращаемое значение

CreateSwapChainForHwnd возвращает:

  • S_OK, если цепочка буферов успешно создана.
  • E_OUTOFMEMORY, если память недоступна для завершения операции.
  • DXGI_ERROR_INVALID_CALL , если вызывающее приложение предоставило недопустимые данные, например, если pDesc или ppSwapChain имеет значение NULL или члены данных pDesc недопустимы.
  • Возможно, другие коды ошибок, описанные в разделе DXGI_ERROR , которые определяются типом устройства, передаваемого в pDevice.

Обновление платформы для Windows 7: DXGI_SCALING_NONE не поддерживается в Windows 7 или Windows Server 2008 R2 с установленным обновлением платформы для Windows 7 и вызывает возврат DXGI_ERROR_INVALID_CALL при вызове метода CreateSwapChainForHwnd . Дополнительные сведения об Обновлении платформы для Windows 7 см. в разделе Обновление платформы для Windows 7.

Комментарии

Примечание Не используйте этот метод в приложениях Магазина Windows. Вместо этого используйте IDXGIFactory2::CreateSwapChainForCoreWindow.
 
Если вы укажете ширину, высоту или оба значения (элементы Width и HeightDXGI_SWAP_CHAIN_DESC1 , на которые указывает pDesc ) цепочки буферов в виде нуля, среда выполнения получает размер из окна вывода, заданного параметром hWnd .

Затем можно вызвать метод IDXGISwapChain1::GetDesc1 , чтобы получить назначенное значение ширины или высоты.

Так как вы можете связать только одну цепочку буферов модели представления с HWND одновременно, политика Microsoft Direct3D 11 отсрочки уничтожения объектов может вызвать проблемы при попытке уничтожить цепочку буферов модели представления и заменить ее другой цепочкой буферов. Дополнительные сведения об этой ситуации см. в разделе Проблемы с отложенным уничтожением при использовании цепочек буферов представления flip.

Сведения о том, как выбрать формат для обратного буфера цепочки буферов, см. в разделе Преобразование данных для цветового пространства.

Требования

Требование Значение
Минимальная версия клиента Windows 8 и обновление платформы для Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header dxgi1_2.h
Библиотека Dxgi.lib

См. также раздел

Для достижения оптимальной производительности используйте модель пролистывания DXGI.

IDXGIFactory2