Función D3D11CreateDevice (d3d11.h)
Crea un dispositivo que representa el adaptador de pantalla.
Sintaxis
HRESULT D3D11CreateDevice(
[in, optional] IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
[in, optional] const D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
[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.
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.
[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*
Si se ejecuta correctamente, devuelve el primer D3D_FEATURE_LEVEL de la matriz pFeatureLevels que se realizó correctamente. 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 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
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.
Establezca ppDevice y ppImmediateContext en NULL para determinar qué nivel de característica se admite examinando pFeatureLevel sin crear un dispositivo.
Para obtener un ejemplo, vea How To: Create a Device and Immediate Context; para crear un dispositivo y una cadena de intercambio al mismo tiempo, use D3D11CreateDeviceAndSwapChain.
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, D3D11CreateDevice devuelve un VALOR HRESULT de E_INVALIDARG.
Diferencias entre Direct3D 10 y Direct3D 11: En Direct3D 10, la presencia de pAdapter dictaba qué adaptador usar y driverType podía no coincider con lo que era el adaptador. En Direct3D 11, si está intentando crear un hardware o un dispositivo de software, establezca pAdapter != NULL , lo que restringe las demás entradas para que:
|
La firma de función PFN_D3D11_CREATE_DEVICE 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.
Windows Phone 8: se admite esta API.
Windows Phone 8.1: se admite esta API.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d11.h |
Library | D3D11.lib |
Archivo DLL | D3D11.dll |