次の方法で共有


方法: 参照デバイスを作成する

このトピックでは、ランタイムの非常に正確なソフトウェア実装を実装する参照デバイスを作成する方法について説明します。 参照デバイスを作成するには、作成するデバイスで参照ドライバーを使用するように指定するだけです。 この例では、デバイスとスワップ チェーンを同時に作成します。

参照デバイスを作成するには

  1. スワップ チェーンの初期パラメーターを定義します。

        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. アプリケーションに必要な機能を実装する機能レベルを要求します。 Direct3D 11 ランタイムの参照デバイスを正常に作成できます。

        D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
    

    D3D_FEATURE_LEVEL列挙の機能レベルの詳細を参照してください。

  3. D3D11CreateDeviceAndSwapChain を呼び出してデバイスを作成します。

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

D3D_DRIVER_TYPE列挙体からの参照ドライバーの種類を使用して API 呼び出しを指定 する 必要があります。 メソッドが成功すると、スワップ チェーン インターフェイス、デバイス インターフェイス、ドライバーによって付与された機能レベルへのポインター、および即時コンテキスト インターフェイスが返されます。

特定の機能レベルでの参照デバイスの作成に関する制限事項については、「 WARP および参照デバイスの作成に関する制限事項」を参照してください。Direct3D 11 の使用方法

デバイス

Direct3D 11 の使用方法