D3DUSAGE

リソースの使用方法を特定する使用法オプションです。

使用法

利用可能な使用法オプションを次の表にまとめて示します。

#define 説明
D3DUSAGE_AUTOGENMIPMAP リソースにより、ミップマップが自動的に生成されます。「ミップマップの自動生成 (Direct3D 9)」を参照してください。ミップマップの自動生成は、ボリューム テクスチャーおよび深度ステンシル サーフェス/テクスチャーの場合、サポートされていません。この使用法は、システム メモリー (D3DPOOL_SYSTEMMEM) 内のリソースに対して有効ではありません。
D3DUSAGE_DEPTHSTENCIL リソースは深度ステンシル バッファーです。D3DUSAGE_DEPTHSTENCIL は、D3DPOOL_DEFAULT とのみ一緒に指定できます。
D3DUSAGE_DMAP リソースは、ディスプレースメント マップです。
D3DUSAGE_DONOTCLIP 頂点バッファーの内容にクリッピングが不要なことを示す場合に設定します。このフラグが設定されているバッファーを使ってレンダリングする場合、D3DRS_CLIPPING レンダリング ステートは false に設定する必要があります。
D3DUSAGE_DYNAMIC

頂点バッファーに動的メモリーの使用が必要なことを示す場合に設定します。これは、インデックス バッファーの配置先を決定する際に利用できるので、ドライバーに有効です。一般に、静的な頂点バッファーはビデオ メモリー、動的な頂点バッファーは AGP メモリーに配置されます。静的な頂点バッファーの指定方法は他にない点に注意してください。D3DUSAGE_DYNAMIC を指定しないと、頂点バッファーは静的な頂点バッファーになります。D3DUSAGE_DYNAMIC は、ロッキング フラグ D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE を使用して厳密に適用されます。そのため、D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE は、D3DUSAGE_DYNAMIC を指定して作成された頂点バッファーに対してのみ有効です。それらは、静的な頂点バッファーに対して有効なフラグではありません。詳細については、「リソースの管理 (Direct3D 9)」を参照してください。

動的な頂点バッファーの詳細については、「パフォーマンスの最適化 (Direct3D 9)」を参照してください。

D3DUSAGE_DYNAMIC と D3DPOOL_MANAGED は、互換性がないので、一緒に使用しないでください。「D3DPOOL」を参照してください。

テクスチャーの場合は、D3DUSAGE_DYNAMIC を指定できます。ただし、管理下のテクスチャーで D3DUSAGE_DYNAMIC を使用することはできません。動的テクスチャーの詳細については、「動的テクスチャーの使用」を参照してください。

D3DUSAGE_NONSECURE セキュリティで保護されたアプリケーションによって作成された共有サーフェスを、共有ハンドルを持つ、セキュリティで保護されていないアプリケーションが開くことができます。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。
D3DUSAGE_NPATCHES N パッチの描画に頂点バッファーが使用されることを示す場合に設定します。
D3DUSAGE_POINTS ポイント スプライトの描画に頂点バッファーまたはインデックス バッファーが使用されることを示す場合に設定します。該当するバッファーは、ソフトウェアによる頂点処理がポイント スプライトのエミュレートに必要な場合、システム メモリーにロードされます。
D3DUSAGE_RENDERTARGET リソースは、レンダー ターゲットです。D3DUSAGE_RENDERTARGET は、D3DPOOL_DEFAULT とのみ一緒に指定できます。
D3DUSAGE_RTPATCHES 高次プリミティブの描画に頂点バッファーが使用されることを示す場合に設定します。
D3DUSAGE_SOFTWAREPROCESSING

このフラグを指定すると、頂点処理がソフトウェアによって実行されます。このフラグを指定しないと、頂点処理はハードウェアによって実行されます。

D3DUSAGE_SOFTWAREPROCESSING フラグは、ミックスモードまたはソフトウェアによる頂点処理 (D3DCREATE_MIXED_VERTEXPROCESSING/D3DCREATE_SOFTWARE_VERTEXPROCESSING) が該当デバイスで有効な場合に設定できます。ソフトウェアによる頂点処理をミックス モードで使用するバッファーでは D3DUSAGE_SOFTWAREPROCESSING を設定する必要がありますが、ハードウェアによる頂点処理 (D3DCREATE_HARDWARE_VERTEXPROCESSING) をミックス モードで使用するときにパフォーマンスを可能な限り上げるには、このフラグは指定しないでください。ただし、1 つの バッファーをハードウェアによる頂点処理とソフトウェアによる頂点処理の両方に使用する場合は、D3DUSAGE_SOFTWAREPROCESSING を設定するしかオプションはありません。D3DUSAGE_SOFTWAREPROCESSING は、ミックス デバイスの場合もソフトウェア デバイスの場合も指定できます。

IDirect3D9::CheckDeviceFormat で D3DUSAGE_SOFTWAREPROCESSING を指定すると、ソフトウェアによる頂点処理で特定のテクスチャー フォーマットを頂点テクスチャーとして使用できるかどうかを調べることができます。使用できる場合、該当するテクスチャーは D3DPOOL_SCRATCH で作成する必要があります。

D3DUSAGE_TEXTAPI この使用法フラグは、IDirect3DDevice9Ex::ComposeRects を呼び出す際に使用する頂点バッファーおよびソース サーフェスに対して指定する必要があります。この使用法フラグを指定して作成したテクスチャーをテクスチャー フィルタリングに使用することはできません。この使用法フラグを指定して作成された頂点バッファーを、入力ストリームのソースとして使用することはできません。
Direct3D 9 と Direct3D 9Ex の違い このフラグは Direct3D 9Ex でのみ使用できます。
D3DUSAGE_WRITEONLY アプリケーションが頂点バッファーに対して書き込みだけを実行することを、システムに通知します。このフラグを使用することにより、ドライバーは書き込み処理およびレンダリングに最も効率がよいメモリー位置を選択できます。この能力を指定して作成された頂点バッファーに対して読み込みを実行しようとすると、失敗します。D3DPOOL_DEFAULT で D3DUAGE_WRITEONLY を指定せずに作成されたバッファは、パフォーマンスが大幅に低下する可能性があります。D3DUSAGE_WRITEONLY は D3DPOOL_DEFAULT バッファーのパフォーマンスにのみ影響します。
D3DUSAGE_RESTRICTED_CONTENT TBD
D3DUSAGE_RESTRICT_SHARED_RESOURCE TBD
D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER TBD

使用法とリソースの組み合わせ

使用法は、リソースを作成する場合、または IDirect3D9::CheckDeviceType を使用して既存のリソースの能力をテストする場合に指定します。どの使用法をどのリソース タイプに適用できるのかを、次の表に示します。

使用法 頂点バッファーの作成 インデックス バッファーの作成 テクスチャーの作成 キューブ テクスチャーの作成 ボリューム テクスチャーの作成 サーフェスの作成 デバイス フォーマットのチェック
D3DUSAGE_AUTOGENMIPMAP x x x
D3DUSAGE_DEPTHSTENCIL x x x x
D3DUSAGE_DMAP x x
D3DUSAGE_DONOTCLIP x x
D3DUSAGE_DYNAMIC x x x x x x
D3DUSAGE_NONSECURE x x x x x x x
D3DUSAGE_NPATCHES x x
D3DUSAGE_POINTS x x
D3DUSAGE_RTPATCHES x x
D3DUSAGE_RENDERTARGET x x x x
D3DUSAGE_SOFTWAREPROCESSING x x x x x x
D3DUSAGE_TEXTAPI x x
D3DUSAGE_WRITEONLY x x

これらの使用法に対するハードウェア サポートをチェックするには、IDirect3D9::CheckDeviceFormat を使用します。

リソースの各作成方法を、以下に示します。

また、D3DXCreatexxx テクスチャー関数も、リソースの作成に、これらの定数値のいくつかを使用します。

プール タイプおよび特定の使用法に関するその制限の詳細については、「D3DPOOL」を参照してください。

要件

ヘッダー: D3d9types.h 宣言

関連項目

D3DUSAGE_QUERY, D3DDECLUSAGE, D3DPOOL