D3D11CreateDevice
ディスプレイ アダプターを表すデバイスを作成します。
HRESULT
D3D11CreateDevice(
IDXGIAdapter *pAdapter,
D3D_DRIVER_TYPE DriverType,
HMODULE Software,
UINT Flags,
CONST D3D_FEATURE_LEVEL *pFeatureLevels,
UINT FeatureLevels,
UINT SDKVersion,
ID3D11Device **ppDevice,
D3D_FEATURE_LEVEL *pFeatureLevel,
ID3D11DeviceContext **ppImmediateContext
);
パラメータ
pAdapter
デバイスの作成時に使用するビデオ アダプターへのポインターです (「IDXGIAdapter」を参照)。既定のアダプターを使用するには NULL を渡します。既定のアダプターは、IDXGIFactory::EnumAdapters によって最初に列挙されたアダプターです。DriverType
作成するデバイスの種類を表す D3D_DRIVER_TYPE です。Software
ソフトウェア ラスタライザーを実装する DLL のハンドルです。DriverType が D3D_DRIVER_TYPE_SOFTWARE の場合、Software を NULL に設定することはできません。このハンドルを取得するには、LoadLibrary、LoadLibraryEx、または GetModuleHandle を呼び出します。Flags
有効にするランタイム レイヤーです (「D3D11_CREATE_DEVICE_FLAG」を参照)。値はビット単位の OR 演算で指定できます。pFeatureLevels
作成を試みる機能レベルの順序を指定する D3D_FEATURE_LEVEL の配列へのポインターです。使用できる最大の機能レベルを取得するには、既定のパラメーターを使用します。pFeatureLevels を NULL に設定すると、次のような機能レベルの配列が使用されます。{ D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1, };
FeatureLevels
pFeatureLevels の要素数です。SDKVersion
SDK のバージョンです。D3D11_SDK_VERSION を指定します。ppDevice
作成されたデバイスを表す ID3D11Device オブジェクトへのポインターのアドレスを返します。pFeatureLevel
成功した場合は、成功した pFeatureLevels 配列の最初の D3D_FEATURE_LEVEL を返します。失敗した場合は 0 を返します。ppImmediateContext
デバイス コンテキストを表す ID3D11DeviceContext オブジェクトへのポインターのアドレスを返します。
戻り値
このメソッドは、「Direct3D 11 のリターン コード」のいずれかを返します。
解説
このエントリーポイントと D3D11.DLL には Direct3D 11 ランタイムが必要です。Direct3D 11 ランタイムは、Windows 7、Windows Server 2008 R2、および Windows Vista の更新プログラム (KB971644) に付属しています。
pFeatureLevel を調べることにより、サポートされている機能レベルを確認するだけで、デバイスを作成しない場合は、ppDevice と ppImmediateContext を NULL に設定します。
例については、「方法 :デバイスとイミディエイト コンテキストの作成」を参照してください。デバイスとスワップ チェーンを同時に作成するには、D3D11CreateDeviceAndSwapChain を使用します。
Direct3D 10 と Direct3D 11 の違い Direct3D 10 では、使用するアダプターを pAdapter で指定していましたが、DriverType の指定がそのアダプターに一致しない可能性がありました。 Direct3D 11 では、ハードウェア デバイスまたはソフトウェア デバイスを作成する場合、pAdapter != NULL に設定します。これにより、他の入力が次のように制約されます。
一方、pAdapter == NULL の場合、DriverType を D3D_DRIVER_TYPE_UNKNOWN に設定することはできません。次のいずれかに設定できます。
|
要件
ヘッダー: D3D11.h 宣言
ライブラリ: D3D11.lib 内容