Partilhar 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 permuta ao mesmo tempo.

Para criar um dispositivo WARP

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

        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 que variam de D3D_FEATURE_LEVEL_9_1 a D3D_FEATURE_LEVEL_10_1, e a partir do 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 de 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 de dispositivo, um ponteiro para o nível de recurso concedido pelo driver e uma interface de contexto imediato.

Para obter informações sobre limitações na criação de um dispositivo WARP em determinados níveis de recursos, consulte Limitações criando WARP e dispositivos de referência.

Novo no Windows 8

Quando o adaptador de vídeo primário de um computador é o "Microsoft Basic Display Adapter" (adaptador WARP), esse computador também tem um segundo adaptador. Este segundo adaptador é o dispositivo exclusivamente de renderização que não possui saídas de imagem. Para obter mais informações sobre o dispositivo somente renderização, consulte novas informações no Windows 8 sobre a enumeração de adaptadores.

dispositivos

Como usar o Direct3D 11