次の方法で共有


D3DCREATE

デバイス作成の動作を制御する 1 つまたは複数のフラグの組み合わせです。

#define 説明
D3DCREATE_ADAPTERGROUP_DEVICE 該当するマスター アダプターが所有するすべてのヘッドを駆動するよう、アプリケーションがデバイスに指示します。このフラグは、マスター以外のアダプターでは指定できません。このフラグを設定する場合、IDirect3D9::CreateDevice に渡すプレゼンテーション パラメーターでは、D3DPRESENT_PARAMETERS の配列をポイントします。D3DPRESENT_PARAMETERS の要素の数は、D3DCAPS9 構造体の NumberOfAdaptersInGroup メンバーによって定義されるアダプターの数に等しくなければなりません。DirectX ランタイムは、D3DCAPS9 の AdapterOrdinalInGroup メンバーによって指定される番号順に、各要素を各ヘッドに割り当てます。
D3DCREATE_DISABLE_DRIVER_MANAGEMENT Direct3D が、ドライバーの代わりにリソースを管理します。Direct3D の呼び出しは、ビデオ メモリーが不十分のようなリソース エラーで失敗することがありません。
D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX D3DCREATE_DISABLE_DRIVER_MANAGEMENT のように、Direct3D はドライバーの代わりにリソースを管理します。ただし、D3DCREATE_DISABLE_DRIVER_MANAGEMENT の場合とは異なり、D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX はビデオ メモリーが不十分のような状態の場合、エラーを返します。
D3DCREATE_DISABLE_PRINTSCREEN デスクトップまたはウィンドウの内容を取得するための PrintScreen キー、Ctrl + PrintScreen キー、および Alt + PrintScreen キーのホットキーを、ランタイムが登録しません。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。
D3DCREATE_DISABLE_PSGP_THREADING 演算がアプリケーションのメイン スレッドに制限されます。このフラグを設定しないと、ランタイムはマルチプロセッサ システムのパフォーマンスを改善するために、ソフトウェアによる頂点処理などの計算をワーカー スレッドで実行することができます。
Windows XP と Windows Vista の相違: このフラグは Windows Vista、Windows Server 2008、および Windows 7 で使用できます。
D3DCREATE_ENABLE_PRESENTSTATS デバイス上での表示の統計情報の収集が可能になります。IDirect3DSwapChain9Ex::GetPresentStatistics に対する呼び出しからは、有効なデータが返されます。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。
D3DCREATE_FPU_PRESERVE Direct3D の浮動小数点計算の精度に、呼び出し元スレッドが使用する精度が設定されます。このフラグを指定しなかった場合は、以下の 2 つの理由により、最も近い値に丸める単精度モードが Direct3D の既定値になります。
  • 倍精度モードの場合は、Direct3D のパフォーマンスが低下する。
  • Direct3D の一部では、浮動小数点ユニットの例外がマスクされることが前提になっている。そのような例外がマスクされなかった場合は、未定義の動作になる可能性がある。
D3DCREATE_HARDWARE_VERTEXPROCESSING ハードウェアによる頂点処理を指定します。
D3DCREATE_MIXED_VERTEXPROCESSING (ソフトウェアおよびハードウェアによる) ミックスの頂点処理を指定します。
D3DCREATE_MULTITHREADED アプリケーションから Direct3D にマルチスレッドでの安全な動作を要求することを示します。これにより、Direct3D スレッドはグローバルな クリティカル セクション を所有する頻度が増え、パフォーマンスが低下する可能性があります。1 つのスレッドで Direct3D API を呼び出し、別のスレッドでウィンドウ メッセージを処理するアプリケーションでは、デバイスの作成時にこのフラグを使用する必要があります。また、このウィンドウは、d3d9.dll をアンロードする前に破棄する必要があります。
D3DCREATE_NOWINDOWCHANGES フォーカス ウィンドウを変更してはならないことを Direct3D に指示します。

    このフラグが設定されている場合、アプリケーションでは Alt + Tab キーやマウスのクリック イベントのようなすべてのフォーカス管理イベントをサポートする必要があります。

D3DCREATE_PUREDEVICE 状態ブロックに格納できるすべてのものに対して Direct3D が Get* 呼び出しをサポートしないことを指定します。また、このフラグにより、Direct3D は頂点処理のエミュレーション サービスもサポートしません。つまり、デバイスが頂点処理をサポートしない場合、アプリケーションではトランスフォーム後の頂点しか使用することができません。
D3DCREATE_SCREENSAVER 全画面アプリケーションの際、スクリーンセーバーが許可されます。このフラグを設定しないと、Direct3D は呼び出し元のアプリケーションが全画面である期間、スクリーンセーバーを無効にします。呼び出し元のアプリケーションが既にスクリーンセーバーである場合は、このフラグを設定しても何も実行されません。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。
D3DCREATE_SOFTWARE_VERTEXPROCESSING ソフトウェアによる頂点処理を指定します。

D3DCREATE_HARDWARE_VERTEXPROCESSING、D3DCREATE_MIXED_VERTEXPROCESSING、および D3DCREATE_SOFTWARE_VERTEXPROCESSING は、同時指定できないフラグです。IDirect3D9::CreateDevice を呼び出す際は、これらの頂点処理フラグを少なくとも 1 つ指定する必要があります。

定数情報

ヘッダー D3D9.h
最低限必要なオペレーティング システム Windows 98