Função D3D11CreateDeviceAndSwapChain (d3d11.h)
Cria um dispositivo que representa o adaptador de exibição e uma cadeia de troca usada para renderização.
Sintaxe
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*
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 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. O valor deve ser não NULL quando D3D_DRIVER_TYPE for D3D_DRIVER_TYPE_SOFTWARE e NULL caso contrário.
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 recurso a serem criados. Se pFeatureLevels estiver 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.
[in, optional] pSwapChainDesc
Tipo: const DXGI_SWAP_CHAIN_DESC*
Um ponteiro para uma descrição de cadeia de troca (consulte DXGI_SWAP_CHAIN_DESC) que contém parâmetros de inicialização para a cadeia de troca.
[out, optional] ppSwapChain
Tipo: IDXGISwapChain**
Retorna o endereço de um ponteiro para o objeto IDXGISwapChain que representa a cadeia de troca usada para renderização.
[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*
Retorna um ponteiro para um D3D_FEATURE_LEVEL, que representa o primeiro elemento em uma matriz de níveis de recursos com suporte do dispositivo. 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á DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se você chamá-lo em um processo de Sessão 0.
Esse método retornará E_INVALIDARG se você definir o parâmetro pAdapter como um valor não NULL e o parâmetro DriverType para 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 mais recente do Windows para obter a versão correta.
Comentários
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 chame o método QueryInterface no objeto ID3D11Device para obter a interface ID3D11Device2.
Além disso, consulte a seção comentários em D3D11CreateDevice para obter detalhes sobre dependências de parâmetro de entrada. Para criar um dispositivo sem criar uma cadeia de troca, use a função D3D11CreateDevice .
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, D3D11CreateDeviceAndSwapChain retornará um HRESULT de E_INVALIDARG.
A assinatura de função PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN é fornecida como um typedef, para que você possa usar técnicas de vinculação dinâmica (GetProcAddress) em vez de vincular estaticamente.
Notas de uso
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d11.h |
Biblioteca | D3D11.lib |
DLL | D3D11.dll |