Como criar um dispositivo de referência

Este tópico mostra como criar um dispositivo de referência que implementa uma implementação de software altamente precisa do runtime. Para criar um dispositivo de referência, basta especificar que o dispositivo que você está criando usará um driver de referência. Este exemplo cria um dispositivo e uma cadeia de troca ao mesmo tempo.

Para criar um dispositivo de referência

  1. Defina parâmetros iniciais para uma cadeia de troca.

        DXGI_SWAP_CHAIN_DESC sd;
        ZeroMemory( &sd, sizeof( sd ) );
        sd.BufferCount = 1;
        sd.BufferDesc.Width = 640;
        sd.BufferDesc.Height = 480;
        sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
        sd.BufferDesc.RefreshRate.Numerator = 60;
        sd.BufferDesc.RefreshRate.Denominator = 1;
        sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
        sd.OutputWindow = g_hWnd;
        sd.SampleDesc.Count = 1;
        sd.SampleDesc.Quality = 0;
        sd.Windowed = TRUE;
    
  2. Solicite um nível de recurso que implemente os recursos de que seu aplicativo precisará. Um dispositivo de referência pode ser criado com êxito para o runtime do Direct3D 11.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
    

    Veja mais sobre os níveis de recursos na enumeração D3D_FEATURE_LEVEL .

  3. Crie o dispositivo chamando D3D11CreateDeviceAndSwapChain.

    HRESULT hr = S_OK;
    D3D_FEATURE_LEVEL FeatureLevel;

    if( FAILED (hr = D3D11CreateDeviceAndSwapChain( NULL, 
                    D3D_DRIVER_TYPE_REFERENCE,
                    NULL, 
                    0,
                    &FeatureLevels, 
                    1, 
                    D3D11_SDK_VERSION, 
                    &sd, 
                    &g_pSwapChain, 
                    &g_pd3dDevice, 
                    &FeatureLevel,
                    &g_pImmediateContext )))
    {
        return hr;
    }

Você precisará fornecer a chamada à API com o tipo de driver de referência da enumeração D3D_DRIVER_TYPE . Depois que o método for bem-sucedido, ele retornará uma interface de cadeia de troca, uma interface do dispositivo, um ponteiro para o nível de recurso que foi concedido pelo driver e uma interface de contexto imediata.

Para obter informações sobre limitações ao criar um dispositivo de referência em determinados níveis de recursos, consulte Limitações ao criar dispositivos WARP e de referência. Como usar o Direct3D 11

Dispositivos

Como usar o Direct3D 11