Compartir a través de


Cómo: Crear un dispositivo WARP

En este tema se muestra cómo crear un dispositivo WARP que implementa un rasterizador de software de alta velocidad. Para crear un dispositivo WARP, simplemente especifique que el dispositivo que está creando usará un controlador WARP. En este ejemplo se crea un dispositivo y una cadena de intercambio al mismo tiempo.

Para crear un dispositivo WARP

  1. Defina los parámetros iniciales para una cadena de intercambio.

        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 un nivel de característica que implemente las características que necesitará la aplicación. Un dispositivo WARP se puede crear correctamente para los niveles de características D3D_FEATURE_LEVEL_9_1 a través de D3D_FEATURE_LEVEL_10_1 y a partir de Windows 8 para todos los niveles de características.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
    

    Consulte más información sobre los niveles de características en la enumeración D3D_FEATURE_LEVEL .

  3. Cree el dispositivo llamando a 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;
    }

Deberá proporcionar la llamada API con el tipo de controlador WARP de la enumeración D3D_DRIVER_TYPE . Una vez que el método se realiza correctamente, devolverá una interfaz de cadena de intercambio, una interfaz de dispositivo, un puntero al nivel de característica concedido por el controlador y una interfaz de contexto inmediata.

Para obtener información sobre las limitaciones de creación de un dispositivo WARP en determinados niveles de características, consulte Limitaciones de creación de WARP y dispositivos de referencia.

Novedades de Windows 8

Cuando el adaptador de pantalla principal de un equipo es el "Adaptador de pantalla básico de Microsoft" (adaptador WARP), ese equipo también tiene un segundo adaptador. Este segundo adaptador es el dispositivo de solo representación que no tiene salidas de presentación. Para obtener más información sobre el dispositivo de solo representación, consulta información nueva en Windows 8 sobre la enumeración de adaptadores.

Dispositivos

Cómo usar Direct3D 11