D3DUSAGE
D3DUSAGE
リソースの使用法を指定するオプション。次の表に、各リソース タイプの使用法をまとめる。2 つ目の表に、各リソース タイプで利用できる使用法を示す。
使用法
#define | 説明 |
---|---|
D3DUSAGE_AUTOGENMIPMAP | リソースは、ミップマップを自動生成する。「ミップマップの自動生成」を参照すること。ミップマップの自動生成は、ボリューム テクスチャおよび深度ステンシル サーフェイス/テクスチャではサポートされていない。
この使用法は、システム メモリ (D3DPOOL_SYSTEMMEM) 内のリソースに対しては有効ではない。 |
D3DUSAGE_DEPTHSTENCIL | リソースは、深度ステンシル バッファである。D3DUSAGE_DEPTHSTENCIL は、D3DPOOL_DEFAULT と同時に使う。 |
D3DUSAGE_DMAP | リソースは、ディスプレースメント マップである。 |
D3DUSAGE_DONOTCLIP | 頂点バッファの内容が決してクリッピングを要求しないことを示す。このフラグが設定されたバッファを使ってレンダリングする場合は、D3DRS_CLIPPING レンダリング ステートが FALSE に設定されていなければならない。 |
D3DUSAGE_DYNAMIC | 頂点バッファが動的なメモリの使用を必要とすることを示す。バッファの配置場所をドライバが決定できるので、ドライバにとって有用である。一般的に、静的な頂点バッファはビデオ メモリに配置され、動的な頂点バッファは AGP (Accelerated Graphics Port) メモリに配置される。ほかに静的な使用法はないので注意すること。D3DUSAGE_DYNAMIC を指定していない場合は、静的な頂点バッファが作成される。D3DUSAGE_DYNAMIC は、D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE ロッキング フラグによって厳密に強制される。その結果、D3DLOCK_DISCARD および D3DLOCK_NOOVERWRITE は、D3DUSAGE_DYNAMIC で作成された頂点バッファに対してだけ有効となる。これらのフラグは、静的な頂点バッファに対しては有効ではない。詳細については、「リソースの管理」を参照すること。 動的な頂点バッファの使い方の詳細については、「パフォーマンスの最適化」を参照すること。 D3DUSAGE_DYNAMIC と D3DPOOL_MANAGED は互換性がないので、同時には使えない。「D3DPOOL」を参照すること。 テクスチャでは、D3DUSAGE_DYNAMIC を指定できる。ただし、管理下のテクスチャでは D3DUSAGE_DYNAMIC を使えない。動的テクスチャの詳細については、「動的テクスチャの使い方」を参照すること。 |
D3DUSAGE_NPATCHES | N パッチの描画に頂点バッファを使うときに設定する。 |
D3DUSAGE_POINTS | ポイントの描画に頂点バッファを使うときに設定する。 |
D3DUSAGE_RENDERTARGET | リソースは、レンダリング ターゲットである。D3DUSAGE_RENDERTARGET は、D3DPOOL_DEFAULT と同時に使う。 |
D3DUSAGE_RTPATCHES | 高次プリミティブの描画に頂点バッファを使うときに設定する。 |
D3DUSAGE_SOFTWAREPROCESSING | このフラグを使うと、頂点処理がソフトウェアで行われる。このフラグを使わない場合は、頂点処理がハードウェアで行われる。
D3DUSAGE_SOFTWAREPROCESSING は、ソフトウェア頂点処理で特定のテクスチャ フォーマットが頂点テクスチャとして使えるかどうかを確認するために、IDirect3D9::CheckDeviceFormat と同時に使う。使える場合は、3DPOOL_SCRATCH でテクスチャを作成する必要がある。 |
D3DUSAGE_WRITEONLY | 頂点バッファへの書き込み操作しか実行しないことをシステムに知らせる。このフラグを使うことにより、ドライバは最適なメモリ領域を選択して効率的に書き込み処理やレンダリングを実行する。この能力を使って作成された頂点バッファからの読み出しは失敗する。D3DUAGE_WRITEONLY を指定しない D3DPOOL_DEFAULT を使って作成したバッファは、パフォーマンスの大幅な低下をもたらす可能性がある。 |
使用法とプールの組み合わせ
特定のプール タイプに対して、特定の使用法が使える。詳細については、「D3DPOOL」を参照すること。
使用法とリソースの組み合わせ
使用法は、リソースを作成するときに指定するか、既存のリソースの能力をテストするときに CheckDeviceFormat を使って指定する。この表は、それぞれのリソース タイプに適用可能な使用法を示している。
使用法 | 頂点バッファ作成 | インデックス バッファ作成 | テクスチャ作成 | キューブ テクスチャ作成 | ボリューム テクスチャ作成 | サーフェイス作成 | デバイス フォーマット チェック |
---|---|---|---|---|---|---|---|
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_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_WRITEONLY | x | x |
ハードウェアがこれらの使用法をサポートしているかどうかをチェックするには、IDirect3D9::CheckDeviceFormat を使うこと。
以下にリソース作成メソッドを示す。
- IDirect3DDevice9::CreateCubeTexture
- IDirect3DDevice9::CreateDepthStencilSurface
- IDirect3DDevice9::CreateIndexBuffer
- IDirect3DDevice9::CreateOffscreenPlainSurface
- IDirect3DDevice9::CreateRenderTarget
- IDirect3DDevice9::CreateTexture
- IDirect3DDevice9::CreateVertexBuffer
- IDirect3DDevice9::CreateVolumeTexture
プール タイプの詳細については、「D3DPOOL」を参照すること。
定数情報
ヘッダー | d3d9types.h |
最低限のオペレーティング システム | Windows 98 |