方法 :リファレンス デバイスの作成
リファレンス デバイスは、ランタイムのきわめて正確なソフトウェア実装を実現します。作成するデバイスでリファレンス ドライバーを使用することを指定するだけで、リファレンス デバイスを作成できます。次の例では、デバイスとスワップ チェーンを同時に作成します。
リファレンス デバイスを作成するには
スワップ チェーンの初期パラメーターを定義します。
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;
アプリケーションで必要な機能を実装する機能レベルを要求します。Direct3D 11 ランタイムに対応したリファレンス デバイスを正しく作成できます。
D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
機能レベルの詳細については、D3D_FEATURE_LEVEL 列挙型の説明を参照してください。
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 列挙型からドライバーの種類としてリファレンス ドライバーを指定する必要があります。メソッドが正常に終了すると、スワップ チェーン インターフェイス、デバイス インターフェイス、ドライバーが提供する機能レベルへのポインター、およびイミディエイト コンテキスト インターフェイスが返されます。