Compartir a través de


Función D3D11CreateDeviceAndSwapChain (d3d11.h)

Crea un dispositivo que representa el adaptador de pantalla y una cadena de intercambio usada para la representación.

Sintaxis

HRESULT D3D11CreateDeviceAndSwapChain(
  [in, optional]  IDXGIAdapter               *pAdapter,
                  D3D_DRIVER_TYPE            DriverType,
                  HMODULE                    Software,
                  UINT                       Flags,
  [in, optional]  const D3D_FEATURE_LEVEL    *pFeatureLevels,
                  UINT                       FeatureLevels,
                  UINT                       SDKVersion,
  [in, optional]  const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
  [out, optional] IDXGISwapChain             **ppSwapChain,
  [out, optional] ID3D11Device               **ppDevice,
  [out, optional] D3D_FEATURE_LEVEL          *pFeatureLevel,
  [out, optional] ID3D11DeviceContext        **ppImmediateContext
);

Parámetros

[in, optional] pAdapter

Tipo: IDXGIAdapter*

Puntero al adaptador de vídeo que se va a usar al crear un dispositivo. Pase NULL para usar el adaptador predeterminado, que es el primer adaptador enumerado por IDXGIFactory1::EnumAdapters.

Nota No combine el uso de DXGI 1.0 (IDXGIFactory) y DXGI 1.1 (IDXGIFactory1) en una aplicación. Use IDXGIFactory o IDXGIFactory1, pero no ambos en una aplicación.
 

DriverType

Tipo: D3D_DRIVER_TYPE

El D3D_DRIVER_TYPE, que representa el tipo de controlador que se va a crear.

Software

Tipo: HMODULE

Identificador de un archivo DLL que implementa un rasterizador de software. Si DriverType es D3D_DRIVER_TYPE_SOFTWARE, Software no debe ser NULL. Obtenga el identificador llamando a LoadLibrary, LoadLibraryEx o GetModuleHandle. El valor debe ser distinto de NULL cuando D3D_DRIVER_TYPE es D3D_DRIVER_TYPE_SOFTWARE y NULL de lo contrario.

Flags

Tipo: UINT

Las capas en tiempo de ejecución que se van a habilitar (consulte D3D11_CREATE_DEVICE_FLAG); los valores pueden ser OR bit a bit juntos.

[in, optional] pFeatureLevels

Tipo: const D3D_FEATURE_LEVEL*

Puntero a una matriz de D3D_FEATURE_LEVELs, que determinan el orden de los niveles de características que se van a intentar crear. Si pFeatureLevels se establece en NULL, esta función usa la siguiente matriz de niveles de características:


{
    D3D_FEATURE_LEVEL_11_0,
    D3D_FEATURE_LEVEL_10_1,
    D3D_FEATURE_LEVEL_10_0,
    D3D_FEATURE_LEVEL_9_3,
    D3D_FEATURE_LEVEL_9_2,
    D3D_FEATURE_LEVEL_9_1,
};
          
Nota Si el entorno de ejecución de Direct3D 11.1 está presente en el equipo y pFeatureLevels está establecido en NULL, esta función no creará un dispositivo D3D_FEATURE_LEVEL_11_1 . Para crear un dispositivo D3D_FEATURE_LEVEL_11_1 , debe proporcionar explícitamente una matriz de D3D_FEATURE_LEVEL que incluya D3D_FEATURE_LEVEL_11_1. Si proporciona una matriz de D3D_FEATURE_LEVEL que contiene D3D_FEATURE_LEVEL_11_1 en un equipo que no tiene instalado el entorno de ejecución de Direct3D 11.1, esta función produce un error inmediatamente con E_INVALIDARG.
 

FeatureLevels

Tipo: UINT

Número de elementos de pFeatureLevels.

SDKVersion

Tipo: UINT

La versión del SDK; use D3D11_SDK_VERSION.

[in, optional] pSwapChainDesc

Tipo: const DXGI_SWAP_CHAIN_DESC*

Puntero a una descripción de cadena de intercambio (consulte DXGI_SWAP_CHAIN_DESC) que contiene parámetros de inicialización para la cadena de intercambio.

[out, optional] ppSwapChain

Tipo: IDXGISwapChain**

Devuelve la dirección de un puntero al objeto IDXGISwapChain que representa la cadena de intercambio utilizada para la representación.

[out, optional] ppDevice

Tipo: ID3D11Device**

Devuelve la dirección de un puntero a un objeto ID3D11Device que representa el dispositivo creado. Si este parámetro es NULL, no se devolverá id3D11Device".

[out, optional] pFeatureLevel

Tipo: D3D_FEATURE_LEVEL*

Devuelve un puntero a un D3D_FEATURE_LEVEL, que representa el primer elemento de una matriz de niveles de características admitidos por el dispositivo. Proporcione NULL como entrada si no necesita determinar qué nivel de característica se admite.

[out, optional] ppImmediateContext

Tipo: ID3D11DeviceContext**

Devuelve la dirección de un puntero a un objeto ID3D11DeviceContext que representa el contexto del dispositivo. Si este parámetro es NULL, no se devolverá id3D11DeviceContext.

Valor devuelto

Tipo: HRESULT

Este método puede devolver uno de los códigos de retorno de Direct3D 11.

Este método devuelve DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si lo llama en un proceso de sesión 0.

Este método devuelve E_INVALIDARG si establece el parámetro pAdapter en un valor distinto de NULL y el parámetro DriverType en el valor D3D_DRIVER_TYPE_HARDWARE.

Este método devuelve DXGI_ERROR_SDK_COMPONENT_MISSING si especifica D3D11_CREATE_DEVICE_DEBUG en Marcas y la versión incorrecta de la capa de depuración está instalada en el equipo. Instale la versión más reciente de Windows SDK para obtener la versión correcta.

Comentarios

Nota Si llama a este método en un proceso de sesión 0, devuelve DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
 
Este punto de entrada es compatible con el entorno de ejecución de Direct3D 11, que está disponible en Windows 7, Windows Server 2008 R2 y como una actualización de Windows Vista (KB971644).

Para crear un dispositivo Direct3D 11.1 (ID3D11Device1), que está disponible en Windows 8, Windows Server 2012 y Windows 7 y Windows Server 2008 R2 con platform Update para Windows 7 instalados, primero crea un ID3D11Device con esta función y, a continuación, llama al método QueryInterface en el objeto ID3D11Device para obtener la interfaz ID3D11Device1.

Para crear un dispositivo Direct3D 11.2 (ID3D11Device2), que está disponible en Windows 8.1 y Windows Server 2012 R2, primero crea un ID3D11Device con esta función y, a continuación, llama al método QueryInterface en el objeto ID3D11Device para obtener la interfaz ID3D11Device2.

Consulte también la sección comentarios de D3D11CreateDevice para obtener más información sobre las dependencias de parámetros de entrada. Para crear un dispositivo sin crear una cadena de intercambio, use la función D3D11CreateDevice .

Si establece el parámetro pAdapter en un valor distinto de NULL , también debe establecer el parámetro DriverType en el valor de D3D_DRIVER_TYPE_UNKNOWN. Si establece el parámetro pAdapter en un valor distinto de NULL y el parámetro DriverType en el valor de D3D_DRIVER_TYPE_HARDWARE, D3D11CreateDeviceAndSwapChain devuelve un VALOR HRESULT de E_INVALIDARG.

La firma de función PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN se proporciona como definición de tipo, para que pueda usar técnicas de vinculación dinámica (GetProcAddress) en lugar de vincular estáticamente.

Notas de uso

Nota La función D3D11CreateDeviceAndSwapChain no existe para las aplicaciones de la Tienda Windows. En su lugar, las aplicaciones de la Tienda Windows usan la función D3D11CreateDevice y, a continuación, usan el método IDXGIFactory2::CreateSwapChainForCoreWindow .
 
Nota Esta función no se ha actualizado para admitir características adicionales recientes de creación de cadenas de intercambio. Para obtener los métodos de creación de cadenas de intercambio más actualizadas, consulte los métodos de IDXGIFactory2 (incluido CreateSwapChainForHwnd, CreateSwapChainForCoreWindow y CreateSwapChainForComposition).
 
Windows Phone 8: se admite esta API.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d11.h
Library D3D11.lib
Archivo DLL D3D11.dll

Consulte también

Funciones principales