方法 :リファレンス デバイスの作成

リファレンス デバイスは、ランタイムのきわめて正確なソフトウェア実装を実現します。作成するデバイスでリファレンス ドライバーを使用することを指定するだけで、リファレンス デバイスを作成できます。次の例では、デバイスとスワップ チェーンを同時に作成します。

リファレンス デバイスを作成するには

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

API の呼び出し時には、D3D_DRIVER_TYPE 列挙型からドライバーの種類としてリファレンス ドライバーを指定する必要があります。メソッドが正常に終了すると、スワップ チェーン インターフェイス、デバイス インターフェイス、ドライバーが提供する機能レベルへのポインター、およびイミディエイト コンテキスト インターフェイスが返されます。

関連項目

デバイス