PFN_D3D11_CREATE_DEVICE
コールバックシグネチャ
HRESULT PFN_D3D11_CREATE_DEVICE(
IDXGIAdapter* param0,
D3D_DRIVER_TYPE param1,
HMODULE param2,
DWORD param3,
D3D_FEATURE_LEVEL* param4,
DWORD FeatureLevels,
DWORD param6,
ID3D11Device** param7,
D3D_FEATURE_LEVEL* param8,
ID3D11DeviceContext** param9
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| param0 | IDXGIAdapter* | |
| param1 | D3D_DRIVER_TYPE | |
| param2 | HMODULE | |
| param3 | DWORD | |
| param4 | D3D_FEATURE_LEVEL* | |
| FeatureLevels | DWORD | pFeatureLevels の要素数です。 |
| param6 | DWORD | |
| param7 | ID3D11Device** | |
| param8 | D3D_FEATURE_LEVEL* | |
| param9 | ID3D11DeviceContext** |
公式ドキュメント
ディスプレイアダプターを表すデバイスを作成します。
戻り値
型: HRESULT
このメソッドは Direct3D 11 のリターンコード のいずれかを返すことがあります。
pAdapter パラメーターに NULL 以外の値を指定し、かつ DriverType パラメーターに D3D_DRIVER_TYPE_HARDWARE を指定した場合、このメソッドは E_INVALIDARG を返します。
Flags に D3D11_CREATE_DEVICE_DEBUG を指定し、コンピューターにインストールされている デバッグレイヤー のバージョンが正しくない場合、このメソッドは DXGI_ERROR_SDK_COMPONENT_MISSING を返します。正しいバージョンを入手するには、最新の Windows SDK をインストールしてください。
解説(Remarks)
このエントリポイントは Direct3D 11 ランタイムでサポートされます。Direct3D 11 ランタイムは Windows 7 および Windows Server 2008 R2 で利用でき、Windows Vista には更新プログラム (KB971644) として提供されます。
Windows 8、Windows Server 2012、および Platform Update for Windows 7 を適用した Windows 7 と Windows Server 2008 R2 で利用できる Direct3D 11.1 デバイス (ID3D11Device1) を作成するには、まずこの関数で ID3D11Device を作成し、その ID3D11Device オブジェクトに対して QueryInterface メソッドを呼び出して ID3D11Device1 インターフェイスを取得します。
Windows 8.1 および Windows Server 2012 R2 で利用できる Direct3D 11.2 デバイス (ID3D11Device2) を作成するには、まずこの関数で ID3D11Device を作成し、その ID3D11Device オブジェクトに対して QueryInterface メソッドを呼び出して ID3D11Device2 インターフェイスを取得します。
ppDevice と ppImmediateContext に NULL を設定すると、デバイスを作成せずに pFeatureLevel を調べて、どの機能レベルがサポートされているかを判断できます。
例については、方法: デバイスと即時コンテキストを作成する を参照してください。デバイスとスワップチェーンを同時に作成するには、D3D11CreateDeviceAndSwapChain を使用します。
pAdapter パラメーターに NULL 以外の値を指定する場合は、DriverType パラメーターに D3D_DRIVER_TYPE_UNKNOWN を設定する必要もあります。pAdapter パラメーターに NULL 以外の値を指定し、かつ DriverType パラメーターに D3D_DRIVER_TYPE_HARDWARE を指定した場合、D3D11CreateDevice は E_INVALIDARG の HRESULT を返します。
|
Direct3D 10 と Direct3D 11 の違い:
Direct3D 10 では、pAdapter の有無によって使用するアダプターが決まり、DriverType はそのアダプターと一致していなくても構いませんでした。 Direct3D 11 では、ハードウェアデバイスまたはソフトウェアデバイスを作成しようとする場合に pAdapter != NULL を指定すると、他の入力が次のように制約されます。
|
関数シグネチャ PFN_D3D11_CREATE_DEVICE は typedef として提供されているため、静的リンクの代わりに動的リンクの手法 (GetProcAddress) を使用できます。
Windows Phone 8: この API はサポートされています。
Windows Phone 8.1: この API はサポートされています。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)