Vorgehensweise: Erstellen eines Referenzgeräts

In diesem Thema wird gezeigt, wie Sie ein Referenzgerät erstellen, das eine sehr genaue Softwareimplementierung der Runtime implementiert. Um ein Referenzgerät zu erstellen, geben Sie einfach an, dass das von Ihnen erstellte Gerät einen Referenztreiber verwendet. In diesem Beispiel werden ein Gerät und eine Swapchain gleichzeitig erstellt.

So erstellen Sie ein Referenzgerä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 Referenzgerät kann erfolgreich für die Direct3D 11-Runtime erstellt werden.

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
    

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

Sie müssen den API-Aufruf mit dem Verweistreibertyp 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 Referenzgeräts auf bestimmten Featureebenen finden Sie unter Einschränkungen beim Erstellen von WARP und Referenzgeräten. Verwenden von Direct3D 11

Geräte

Verwenden von Direct3D 11