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