Procédure : créer un appareil WARP

Cette rubrique montre comment créer un appareil WARP qui implémente un rastériseur logiciel à grande vitesse. Pour créer un appareil WARP, spécifiez simplement que l’appareil que vous créez utilisera un pilote WARP. Cet exemple crée un appareil et une chaîne d’échange en même temps.

Pour créer un appareil WARP

  1. Définissez les paramètres initiaux d’une chaîne d’échange.

        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. Demandez un niveau de fonctionnalité qui implémente les fonctionnalités dont votre application aura besoin. Un appareil WARP peut être créé avec succès pour les niveaux de fonctionnalités D3D_FEATURE_LEVEL_9_1 via D3D_FEATURE_LEVEL_10_1 et en commençant par Windows 8 pour tous les niveaux de fonctionnalités.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
    

    Pour plus d’informations sur les niveaux de fonctionnalités, consultez l’énumération D3D_FEATURE_LEVEL .

  3. Créez l’appareil en appelant 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;
    }

Vous devez fournir à l’appel d’API le type de pilote WARP à partir de l’énumération D3D_DRIVER_TYPE . Une fois la méthode réussie, elle retourne une interface de chaîne d’échange, une interface d’appareil, un pointeur vers le niveau de fonctionnalité accordé par le pilote et une interface de contexte immédiate.

Pour plus d’informations sur les limitations de création d’un appareil WARP sur certains niveaux de fonctionnalités, consultez Limitations de création d’appareils WARP et de référence.

Nouveautés pour Windows 8

Lorsque l’adaptateur d’affichage principal d’un ordinateur est l'« adaptateur d’affichage Microsoft Basic » (adaptateur WARP), cet ordinateur dispose également d’un deuxième adaptateur. Ce deuxième adaptateur est le périphérique de rendu uniquement qui n’a pas de sorties d’affichage. Pour plus d’informations sur l’appareil de rendu uniquement, consultez les nouvelles informations dans Windows 8 sur l’énumération des cartes.

Appareils

Comment utiliser Direct3D 11