D3DXFX
エフェクトを保存および作成するためのオプションです。
次の表の定数は d3dx9effect.h で定義されています。
エフェクト ステートの保存および復元フラグ | 説明 |
---|---|
D3DXFX_DONOTSAVESTATE | ステートは、ID3DXEffect::Begin が呼び出されたときに保存されず、また ID3DXEffect::End が呼び出されたときに復元されません。 |
D3DXFX_DONOTSAVESAMPLERSTATE | ステート ブロックでは、ID3DXEffect::Begin が呼び出されたときにステートが保存され、ID3DXEffect::End が呼び出されたときにステートが復元されます。 |
D3DXFX_DONOTSAVESHADERSTATE | ステート ブロックでは、ID3DXEffect::Begin が呼び出されたときにステートが保存され (シェーダーおよびシェーダー定数を除く)、ID3DXEffect::End が呼び出されたときにステートが復元されます。 |
エフェクト作成フラグ | 説明 |
D3DXFX_NOT_CLONEABLE | エフェクトは、クローン化できなくなり、シェーダー バイナリ データを格納しなくなります。ID3DXBaseEffect::GetPassDesc は、シェーダー関数のポインターを返しません。このフラグを設定すると、エフェクト システムでシェーダーのコピーをメモリーに保持しておく必要がなくなるため、エフェクトのメモリー使用量が約 50% 低減されます。このフラグは、D3DXCreateEffect、D3DXCreateEffectFromFile、およびD3DXCreateEffectFromResource で使用されます。 |
D3DXFX_LARGEADDRESSAWARE | エフェクト リソースをマシンの上位アドレス空間に割り当てられるようにします。これには、文字列を使用できず、相互交換的に処理できないという重要な制限があります。たとえば、次のように指定しても機能しません。
その代わりに、パラメーターのハンドルの保存に ID3DXBaseEffect::GetParameterByName などのメソッドを使用すると、変数をエフェクトに渡すことができます。 |
次の表の定数は、既定では定義されていないので、開発時に定義する必要があります。
エフェクト プリプロセッサ #define | 説明 |
---|---|
D3DXFX_LARGEADDRESS_HANDLE | 文字列を D3DXHANDLE パラメーターに渡すときにコンパイルされないように、d3dx9.h をインクルードする前にこの値を定義します。これは、実行時に正しい情報が渡されるかどうか確認する際に役立ちます。 |
エフェクト リンカー フラグ | 説明 |
LARGE_ADDRESS_AWARE | リンカー フラグを LARGE_ADDRESS_AWARE = 1 に設定すると、アプリケーションは必要に応じて 2GB のアドレス制限を超えてリソースを割り当てることができるようになります。 |
エフェクト システムでは、ステートの自動的な保存および復元にステート ブロックが使用されます。ステート ブロックの詳細については、「ステート ブロックによるステートの保存と復元 (Direct3D 9)」を参照してください。