D3DCREATE

デバイスの作成動作を制御する 1 つ以上のフラグの組み合わせ。

#define 説明
D3DCREATE_ADAPTERGROUP_DEVICE アプリケーションは、このマスター アダプターが所有するすべてのヘッドを駆動するようにデバイスに要求します。 非マスター アダプターでは、フラグが無効です。 このフラグが設定されている場合、 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 デバイス上の現在の統計情報の収集を有効にします。 GetPresentStatistics を呼び出すと、有効なデータが返されます。
Direct3D 9 と Direct3D 9Ex の違い:
このフラグは Direct3D 9Ex でのみ使用できます。

 

D3DCREATE_FPU_PRESERVE Direct3D 浮動小数点計算の有効桁数を、呼び出し元のスレッドで使用される有効桁数に設定します。 このフラグを指定しない場合、Direct3D の既定値は、次の 2 つの理由から、単精度の最も近い丸めモードになります。
  • 倍精度モードでは、Direct3D のパフォーマンスが低下します。
  • Direct3D の一部では、浮動小数点ユニットの例外がマスクされていることを前提としています。これらの例外のマスクを解除すると、未定義の動作が発生する可能性があります。
D3DCREATE_HARDWARE_VERTEXPROCESSING ハードウェア頂点処理を指定します。
D3DCREATE_MIXED_VERTEXPROCESSING 混合 (ソフトウェアとハードウェアの両方) 頂点処理を指定します。 Windows 10 バージョン 1607 以降では、この設定の使用は推奨されません。 「D3DCREATE_SOFTWARE_VERTEXPROCESSING」を参照してください。
D3DCREATE_SOFTWARE_VERTEXPROCESSING ソフトウェア頂点処理を指定します。 Windows 10 バージョン 1607 以降では、この設定の使用は推奨されません。 D3DCREATE_HARDWARE_VERTEXPROCESSINGを使用します。

注:
ハードウェア頂点処理が使用できない場合を除き、ソフトウェア頂点処理の使用は、Windows 10バージョン 1607 (およびそれ以降のバージョン) では推奨されません。これは、実装のセキュリティを向上させながら、ソフトウェア頂点処理の効率が大幅に低下したためです。

 
D3DCREATE_MULTITHREADED アプリケーションが Direct3D にマルチスレッド セーフを要求することを示します。 これにより、Direct3D スレッドがグローバル クリティカル セクション の所有権を取得する頻度が高くなり、パフォーマンスが低下する可能性があります。 アプリケーションが別のスレッドで Direct3D API 呼び出しを行っている間にウィンドウ メッセージを処理する場合、アプリケーションはデバイスの作成時にこのフラグを使用する必要があります。 d3d9.dll をアンロードする前に、このウィンドウを破棄する必要もあります。
D3DCREATE_NOWINDOWCHANGES Direct3D がフォーカス ウィンドウを何らかの方法で変更してはならないことを示します。

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

 
D3DCREATE_PUREDEVICE 状態ブロックに格納できるものに対して Direct3D が Get* 呼び出しをサポートしないことを指定します。 また、頂点処理用のエミュレーション サービスを提供しないように Direct3D に指示します。 つまり、デバイスが頂点処理をサポートしていない場合、アプリケーションでは変換後の頂点のみを使用できます。
D3DCREATE_SCREENSAVER 全画面表示アプリケーション中にスクリーンセーバーを許可します。 このフラグがない場合、Direct3D は、呼び出し元のアプリケーションが全画面表示である限り、スクリーンセーバーを無効にします。 呼び出し元のアプリケーションが既にスクリーンセーバーである場合、このフラグは無効です。
Direct3D 9 と Direct3D 9Ex の違い:
このフラグは Direct3D 9Ex でのみ使用できます。

 

 

D3DCREATE_HARDWARE_VERTEXPROCESSING、D3DCREATE_MIXED_VERTEXPROCESSING、およびD3DCREATE_SOFTWARE_VERTEXPROCESSINGは相互に排他的なフラグです。 CreateDevice を呼び出すときは、これらの頂点処理フラグの少なくとも 1 つを指定する必要があります。

定数情報

要件
ヘッダー D3D9.h
最小オペレーティング システム Windows 98

 

Direct3D 定数