Função D3D11CreateDevice (d3d11.h)
Cria um dispositivo que representa o adaptador de exibição.
Sintaxe
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*
Um ponteiro para o adaptador de vídeo a ser usado ao criar um dispositivo. Passe NULL para usar o adaptador padrão, que é o primeiro adaptador que é enumerado por IDXGIFactory1::EnumAdapters.
DriverType
Tipo: D3D_DRIVER_TYPE
O D3D_DRIVER_TYPE, que representa o tipo de driver a ser criado.
Software
Tipo: HMODULE
Um identificador para uma DLL que implementa um rasterizador de software. Se DriverType for D3D_DRIVER_TYPE_SOFTWARE, o software não deverá ser NULL. Obtenha o identificador chamando LoadLibrary, LoadLibraryEx ou GetModuleHandle.
Flags
Tipo: UINT
As camadas de runtime a serem habilitados (consulte D3D11_CREATE_DEVICE_FLAG); os valores podem ser OR'd bit a bit juntos.
[in, optional] pFeatureLevels
Tipo: const D3D_FEATURE_LEVEL*
Um ponteiro para uma matriz de D3D_FEATURE_LEVELs, que determinam a ordem dos níveis de recursos a serem criados. Se pFeatureLevels for definido como NULL, essa função usará a seguinte matriz de níveis de recursos:
{
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
O número de elementos em pFeatureLevels.
SDKVersion
Tipo: UINT
A versão do SDK; use D3D11_SDK_VERSION.
[out, optional] ppDevice
Tipo: ID3D11Device**
Retorna o endereço de um ponteiro para um objeto ID3D11Device que representa o dispositivo criado. Se esse parâmetro for NULL, nenhum ID3D11Device será retornado.
[out, optional] pFeatureLevel
Tipo: D3D_FEATURE_LEVEL*
Se tiver êxito, retornará o primeiro D3D_FEATURE_LEVEL da matriz pFeatureLevels que foi bem-sucedida. Forneça NULL como uma entrada se você não precisar determinar qual nível de recurso tem suporte.
[out, optional] ppImmediateContext
Tipo: ID3D11DeviceContext**
Retorna o endereço de um ponteiro para um objeto ID3D11DeviceContext que representa o contexto do dispositivo. Se esse parâmetro for NULL, nenhum ID3D11DeviceContext será retornado.
Valor retornado
Tipo: HRESULT
Esse método pode retornar um dos códigos de retorno do Direct3D 11.
Esse método retornará E_INVALIDARG se você definir o parâmetro pAdapter como um valor não NULL e o parâmetro DriverType como o valor D3D_DRIVER_TYPE_HARDWARE.
Esse método retornará DXGI_ERROR_SDK_COMPONENT_MISSING se você especificar D3D11_CREATE_DEVICE_DEBUG em Sinalizadores e a versão incorreta da camada de depuração estiver instalada no computador. Instale o SDK do Windows mais recente para obter a versão correta.
Comentários
Esse ponto de entrada é compatível com o runtime do Direct3D 11, que está disponível no Windows 7, Windows Server 2008 R2 e como uma atualização para o Windows Vista (KB971644).
Para criar um dispositivo Direct3D 11.1 (ID3D11Device1), que está disponível no Windows 8, Windows Server 2012 e Windows 7 e Windows Server 2008 R2 com a Atualização de Plataforma para Windows 7 instalada, primeiro você cria um ID3D11Device com essa função e, em seguida, chama o método QueryInterface no objeto ID3D11Device para obter a interface ID3D11Device1 .
Para criar um dispositivo Direct3D 11.2 (ID3D11Device2), que está disponível no Windows 8.1 e no Windows Server 2012 R2, primeiro crie um ID3D11Device com essa função e, em seguida, chame o método QueryInterface no objeto ID3D11Device para obter a interface ID3D11Device2.
Defina ppDevice e ppImmediateContext como NULL para determinar qual nível de recurso tem suporte examinando pFeatureLevel sem criar um dispositivo.
Para obter um exemplo, consulte How To: Create a Device and Immediate Context; para criar um dispositivo e uma cadeia de troca ao mesmo tempo, use D3D11CreateDeviceAndSwapChain.
Se você definir o parâmetro pAdapter como um valor não NULL , também deverá definir o parâmetro DriverType como o valor D3D_DRIVER_TYPE_UNKNOWN. Se você definir o parâmetro pAdapter como um valor não NULL e o parâmetro DriverType como o valor D3D_DRIVER_TYPE_HARDWARE, D3D11CreateDevice retornará um HRESULT de E_INVALIDARG.
Diferenças entre o Direct3D 10 e o Direct3D 11: No Direct3D 10, a presença do pAdapter ditou qual adaptador usar e o DriverType poderia incompatível com o que era o adaptador. No Direct3D 11, se você estiver tentando criar um hardware ou um dispositivo de software, defina pAdapter != NULL que restringe as outras entradas a serem:
|
A assinatura de função PFN_D3D11_CREATE_DEVICE é fornecida como um typedef, para que você possa usar técnicas de vinculação dinâmica (GetProcAddress) em vez de vincular estaticamente.
Windows Phone 8: há suporte para essa API.
Windows Phone 8.1: há suporte para essa API.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d11.h |
Biblioteca | D3D11.lib |
DLL | D3D11.dll |