Compartilhar via


Como criar um dispositivo WARP

Este tópico mostra como criar um dispositivo WARP que implementa um rasterizador de software de alta velocidade. Para criar um dispositivo WARP, basta especificar que o dispositivo que você está criando usará um driver WARP. Este exemplo cria um dispositivo e uma cadeia de troca ao mesmo tempo.

Para criar um dispositivo WARP

  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 WARP pode ser criado com êxito para níveis de recursos D3D_FEATURE_LEVEL_9_1 por meio de D3D_FEATURE_LEVEL_10_1 e começando com Windows 8 para todos os níveis de recursos.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
    

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

  3. Crie o dispositivo chamando D3D11CreateDeviceAndSwapChain.

    HRESULT hr = S_OK;
    if( FAILED (hr = D3D11CreateDeviceAndSwapChain( NULL, 
                    D3D_DRIVER_TYPE_WARP,
                    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 WARP 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 WARP em determinados níveis de recursos, consulte Limitações ao criar dispositivos WARP e de referência.

Novo para Windows 8

Quando o adaptador de exibição principal de um computador é o "Adaptador de Exibição Básico da Microsoft" (adaptador WARP), esse computador também tem um segundo adaptador. Este segundo adaptador é o dispositivo somente renderização que não tem saídas de exibição. Para obter mais informações sobre o dispositivo somente renderização, consulte novas informações em Windows 8 sobre como enumerar adaptadores.

Dispositivos

Como usar o Direct3D 11