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 che si sta creando userà un driver WARP. Questo esempio crea 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 con successo per i livelli di funzionalità da D3D_FEATURE_LEVEL_9_1 fino a 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. Crea 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;
    }

Sarà necessario specificare la chiamata API con il tipo di driver WARP dall'enumerazione D3D_DRIVER_TYPE. Dopo che il metodo ha avuto successo, 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 relative alla creazione di un dispositivo WARP in determinati livelli di funzionalità, vedere Limitazioni per la creazione di dispositivi WARP e riferimenti.

Novità per Windows 8

Quando la scheda di visualizzazione principale di un computer è la scheda di visualizzazione "Adattatore schermo Microsoft Basic" (WARP), tale computer dispone anche di una seconda scheda. Questo secondo adattatore è un dispositivo di sola elaborazione che non ha uscite video. Per ulteriori informazioni sul dispositivo di solo rendering, vedi nuove informazioni su Windows 8 sull'enumerazione degli adattatori.

Dispositivi

Come usare Direct3D 11