Vorgehensweise: Erstellen eines WARP-Geräts

In diesem Thema wird gezeigt, wie Sie ein WARP-Gerät erstellen, das einen Hochgeschwindigkeits-Softwarerasterer implementiert. Um ein WARP-Gerät zu erstellen, geben Sie einfach an, dass das von Ihnen erstellte Gerät einen WARP-Treiber verwendet. In diesem Beispiel werden ein Gerät und eine Swapchain gleichzeitig erstellt.

So erstellen Sie ein WARP-Gerät

  1. Definieren Sie anfängliche Parameter für eine Swapchain.

        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. Fordern Sie eine Featureebene an, die die Features implementiert, die Ihre Anwendung benötigt. Ein WARP-Gerät kann erfolgreich für Featureebenen erstellt werden, D3D_FEATURE_LEVEL_9_1 über D3D_FEATURE_LEVEL_10_1 und beginnend mit Windows 8 für alle Featureebenen.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
    

    Weitere Informationen zu Featureebenen finden Sie in der D3D_FEATURE_LEVEL-Enumeration .

  3. Erstellen Sie das Gerät, indem Sie D3D11CreateDeviceAndSwapChain aufrufen.

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

Sie müssen den API-Aufruf mit dem WARP-Treibertyp aus der D3D_DRIVER_TYPE-Enumeration angeben. Nachdem die Methode erfolgreich war, wird eine Swap chain-Schnittstelle, eine Geräteschnittstelle, ein Zeiger auf die Featureebene zurückgegeben, die vom Treiber gewährt wurde, und eine unmittelbare Kontextschnittstelle.

Informationen zu Einschränkungen beim Erstellen eines WARP-Geräts auf bestimmten Featureebenen finden Sie unter Einschränkungen beim Erstellen von WARP und Referenzgeräten.

Neu für Windows 8

Wenn der primäre Anzeigeadapter eines Computers der "Microsoft Basic Display Adapter" (WARP-Adapter) ist, verfügt dieser Computer auch über einen zweiten Adapter. Dieser zweite Adapter ist das reine Rendergerät, das über keine Anzeigeausgaben verfügt. Weitere Informationen zum rein rendernden Gerät finden Sie unter neue Informationen in Windows 8 zum Auflisten von Adaptern.

Geräte

Verwenden von Direct3D 11