Procedura: Creare un dispositivo di riferimento

Questo argomento illustra come creare un dispositivo di riferimento che implementa un'implementazione software estremamente accurata del runtime. Per creare un dispositivo di riferimento, specificare semplicemente che il dispositivo creato userà un driver di riferimento. In questo esempio viene creato un dispositivo e una catena di scambio contemporaneamente.

Per creare un dispositivo di riferimento

  1. Definire i parametri iniziali per una catena di scambio.

        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. Richiedere un livello di funzionalità che implementa le funzionalità necessarie per l'applicazione. Un dispositivo di riferimento può essere creato correttamente per il runtime Direct3D 11.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
    

    Per altre informazioni sui livelli di funzionalità, vedere l'enumerazione D3D_FEATURE_LEVEL .

  3. Creare il dispositivo chiamando 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;
    }

È necessario specificare la chiamata API con il tipo di driver di riferimento dall'enumerazione D3D_DRIVER_TYPE . Al termine del metodo, restituirà un'interfaccia della catena di scambio, un'interfaccia del dispositivo, un puntatore al livello di funzionalità concesso dal driver e un'interfaccia di contesto immediata.

Per informazioni sulle limitazioni che creano un dispositivo di riferimento su determinati livelli di funzionalità, vedere Limitazioni per la creazione di dispositivi WARP e riferimenti. Come usare Direct3D 11

Dispositivi

Come usare Direct3D 11