次の方法で共有


D3DXFX

効果を保存および作成するためのオプション。

次の表の定数は d3dx9effect.h で定義されています。

効果状態の保存と復元のフラグ 説明
D3DXFX_DONOTSAVESTATE 状態は、Begin を呼び出したときに保存されず、End を呼び出したときに復元されません。
D3DXFX_DONOTSAVESAMPLERSTATE 状態ブロックにより、Begin を呼び出したときに状態が保存され、End を呼び出したときに状態が復元されます。
D3DXFX_DONOTSAVESHADERSTATE 状態ブロックにより、Begin を呼び出したときに (シェーダーとシェーダー定数を除く) 状態が保存され、End を呼び出したときに状態が復元されます。
効果の作成フラグ 説明
D3DXFX_NOT_CLONEABLE 効果は複製不可能になり、シェーダーのバイナリ データは含まれません。 GetPassDesc はシェーダー関数ポインターを返しません。 このフラグを設定すると、効果システムがシェーダーのコピーをメモリに保持する必要がなくなるため、効果のメモリ使用量が約 50% 削減されます。 このフラグは D3DXCreateEffectD3DXCreateEffectFromFileD3DXCreateEffectFromResource によって使われます。
D3DXFX_LARGEADDRESSAWARE マシンの上位アドレス空間への効果リソースの割り当てを有効にします。 重要な制限の 1 つは、文字列とハンドルを同様なものとして使用できないことです。 たとえば、以下は機能しなくなります。
g_pEffect->SetMatrix( "g_mWorldViewProjection", &mWorldViewProjection );

代わりに GetParameterByName のようなメソッドを使ってパラメーターのハンドルを格納する必要があります。これを使って、効果に変数を渡します。

 

次の表の定数は既定では定義されていないため、開発者が定義する必要があります。

エフェクト プリプロセッサの #define 説明
D3DXFX_LARGEADDRESS_HANDLE この値を定義してから d3dx9.h をインクルードしてください。こうすると、D3DXHANDLE パラメーターに文字列を渡そうとしたときに、アプリケーションはコンパイルに失敗します。 これは、有効な情報がランタイムに確実に渡されるようにするのに役立ちます。
効果リンカー フラグ 説明
LARGE_ADDRESS_AWARE リンカー フラグ LARGE_ADDRESS_AWARE = 1 を設定すると、必要に応じて、アプリケーションは 2 GB のアドレス制限を超えてリソースを割り当てることができるようになります。

 

効果システムでは、状態ブロックを使って状態を自動的に保存および復元します。 状態ブロックの詳細については、「状態ブロックの状態の保存と復元 (Direct3D 9)」を参照してください。

効果の定数