Share via


Método IDXGIFactory2::CreateSwapChainForHwnd (dxgi1_2.h)

Crea una cadena de intercambio asociada a un identificador HWND a la ventana de salida de la cadena de intercambio.

Sintaxis

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
);

Parámetros

[in] pDevice

Para Direct3D 11 y versiones anteriores de Direct3D, se trata de un puntero al dispositivo Direct3D para la cadena de intercambio. Para Direct3D 12, es un puntero a una cola de comandos directa (consulte ID3D12CommandQueue). Este parámetro no puede ser NULL.

[in] hWnd

Identificador HWND asociado a la cadena de intercambio que crea CreateSwapChainForHwnd . Este parámetro no puede ser NULL.

[in] pDesc

Puntero a una estructura de DXGI_SWAP_CHAIN_DESC1 para la descripción de la cadena de intercambio. Este parámetro no puede ser NULL.

[in, optional] pFullscreenDesc

Puntero a una estructura de DXGI_SWAP_CHAIN_FULLSCREEN_DESC para la descripción de una cadena de intercambio de pantalla completa. Opcionalmente, puede establecer este parámetro para crear una cadena de intercambio de pantalla completa. Establézcalo en NULL para crear una cadena de intercambio con ventanas.

[in, optional] pRestrictToOutput

Puntero a la interfaz IDXGIOutput para que la salida restrinja el contenido. También debe pasar la marca de DXGI_PRESENT_RESTRICT_TO_OUTPUT en una llamada IDXGISwapChain1::P resent1 para forzar que el contenido aparezca atenuado en cualquier otra salida. Si desea restringir el contenido a una salida diferente, debe crear una nueva cadena de intercambio. Sin embargo, puede restringir condicionalmente el contenido en función de la marca DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Establezca este parámetro en NULL si no desea restringir el contenido a un destino de salida.

[out] ppSwapChain

Puntero a una variable que recibe un puntero a la interfaz IDXGISwapChain1 de la cadena de intercambio que crea CreateSwapChainForHwnd .

Valor devuelto

CreateSwapChainForHwnd devuelve:

  • S_OK si creó correctamente una cadena de intercambio.
  • E_OUTOFMEMORY si la memoria no está disponible para completar la operación.
  • DXGI_ERROR_INVALID_CALL si la aplicación que realiza la llamada proporcionó datos no válidos, por ejemplo, si pDesc o ppSwapChain es NULL o los miembros de datos pDesc no son válidos.
  • Posiblemente otros códigos de error que se describen en el tema DXGI_ERROR definidos por el tipo de dispositivo que se pasa a pDevice.

Actualización de la plataforma para Windows 7: DXGI_SCALING_NONE no se admite en Windows 7 o Windows Server 2008 R2 con la actualización de plataforma para Windows 7 instalada y hace que CreateSwapChainForHwnd devuelva DXGI_ERROR_INVALID_CALL cuando se llama a . Para obtener más información sobre la actualización de plataforma para Windows 7, consulta Actualización de plataforma para Windows 7.

Comentarios

Nota No use este método en las aplicaciones de la Tienda Windows. En su lugar, use IDXGIFactory2::CreateSwapChainForCoreWindow.
 
Si especifica el ancho, alto o ambos (miembros Width y Height de DXGI_SWAP_CHAIN_DESC1 a los que apunta pDesc ) de la cadena de intercambio como cero, el runtime obtiene el tamaño de la ventana de salida que especifica el parámetro hWnd .

Posteriormente, puede llamar al método IDXGISwapChain1::GetDesc1 para recuperar el valor de ancho o alto asignados.

Dado que solo puede asociar una cadena de intercambio de modelos de presentación invertida a la vez con un HWND, la directiva de Microsoft Direct3D 11 de aplazar la destrucción de objetos puede causar problemas si intenta destruir una cadena de intercambio de modelos de presentación invertida y reemplazarla por otra cadena de intercambio. Para obtener más información sobre esta situación, consulta Problemas de destrucción diferida con cadenas de intercambio de presentación flip.

Para obtener información sobre cómo elegir un formato para el búfer de reserva de la cadena de intercambio, consulte Conversión de datos para el espacio de colores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y Actualización de plataforma para Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 y actualización de plataforma para Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxgi1_2.h
Library Dxgi.lib

Consulte también

Para obtener el mejor rendimiento, use el modelo de volteo DXGI.

IDXGIFactory2