Condividi tramite


Procedura: Creare un dispositivo WARP

Questo argomento illustra come creare un dispositivo WARP che implementa un rasterizzatore software ad alta velocità. Per creare un dispositivo WARP, specificare semplicemente che il dispositivo creato userà un driver WARP. In questo esempio viene creato un dispositivo e una catena di scambio contemporaneamente.

Per creare un dispositivo WARP

  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 WARP può essere creato correttamente per i livelli di funzionalità D3D_FEATURE_LEVEL_9_1 tramite D3D_FEATURE_LEVEL_10_1 e a partire da Windows 8 per tutti i livelli di funzionalità.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
    

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

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

È necessario fornire la chiamata API con il tipo di driver WARP 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 della creazione di un dispositivo WARP in determinati livelli di funzionalità, vedere Limitazioni creazione di dispositivi WARP e riferimenti.

Novità per Windows 8

Quando una scheda di visualizzazione primaria di un computer è la scheda di visualizzazione "Adattatore display di base Microsoft" (WARP), tale computer ha anche una seconda scheda. Questa seconda scheda è il dispositivo di sola rendering senza output di visualizzazione. Per altre informazioni sul dispositivo di sola rendering, vedere nuove informazioni in Windows 8 sull'enumerazione degli adattatori.

Dispositivi

Come usare Direct3D 11