Cómo: Crear un dispositivo de referencia

En este tema se muestra cómo crear un dispositivo de referencia que implementa una implementación de software muy precisa del entorno de ejecución. Para crear un dispositivo de referencia, simplemente especifique que el dispositivo que está creando usará un controlador de referencia. En este ejemplo se crea un dispositivo y una cadena de intercambio al mismo tiempo.

Para crear un dispositivo de referencia

  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. Se puede crear correctamente un dispositivo de referencia para el entorno de ejecución de Direct3D 11.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
    

    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;
    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;
    }

Deberá proporcionar la llamada API con el tipo de controlador de referencia 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 de referencia en determinados niveles de características, consulte Limitaciones de creación de WARP y dispositivos de referencia. Cómo usar Direct3D 11

Dispositivos

Cómo usar Direct3D 11