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.
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,
};
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
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
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d11.h |
Library | D3D11.lib |
Archivo DLL | D3D11.dll |