方法: WARP デバイスを作成する
このトピックでは、高速ソフトウェア ラスタライザーを実装する WARP デバイスを作成する方法について説明します。 WARP デバイスを作成するには、作成するデバイスに WARP ドライバーを使用するように指定するだけです。 この例では、デバイスとスワップ チェーンを同時に作成します。
WARP デバイスを作成するには
スワップ チェーンの初期パラメーターを定義します。
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;
アプリケーションに必要な機能を実装する機能レベルを要求します。 WARP デバイスは、D3D_FEATURE_LEVEL_10_1を介してD3D_FEATURE_LEVEL_9_1機能レベルに対して正常に作成され、すべての機能レベルのWindows 8から開始できます。
D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_10_1;
D3D_FEATURE_LEVEL列挙の機能レベルの詳細を参照してください。
D3D11CreateDeviceAndSwapChain を呼び出してデバイスを作成します。
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;
}
D3D_DRIVER_TYPE列挙体から WARP ドライバーの種類を使用して API 呼び出しを指定 する 必要があります。 メソッドが成功すると、スワップ チェーン インターフェイス、デバイス インターフェイス、ドライバーによって付与された機能レベルへのポインター、および即時コンテキスト インターフェイスが返されます。
特定の機能レベルでの WARP デバイスの作成に関する制限事項については、「 WARP および参照デバイスの作成に関する制限事項」を参照してください。
Windows 8 の新機能
コンピューターのプライマリ ディスプレイ アダプターが "Microsoft Basic Display Adapter" (WARP アダプター) の場合、そのコンピューターには 2 つ目のアダプターもあります。 この 2 番目のアダプターは、表示出力がないレンダリング専用デバイスです。 レンダリング専用デバイスの詳細については、アダプターの列挙に関するWindows 8の新しい情報を参照してください。
関連トピック