ID3D10Effect::Optimize
エフェクトが必要とするメモリーの量を最小化します。
HRESULT
Optimize(
);
パラメータ
なし。
戻り値
次の Direct3D 10 のリターン コード のいずれかを返します。
解説
エフェクトによるメモリー空間の使用方法には、2 種類あります。ランタイムがエフェクトを実行するのに必要な情報を格納する場合と、API を使用しているアプリケーションに対して情報を返すために必要なメタデータを格納する場合です。リフレクション メタデータをメモリーから削除する ID3D10Effect::Optimize を呼び出すことによって、エフェクトが必要とするメモリーの量を最小限に抑えることができます。リフレクション データが削除されると、変数を読み込む API メソッドは機能しなくなります。
以下のメソッドは、エフェクトに対して Optimize を呼び出した後で失敗します。
- ID3D10Effect::GetConstantBufferByIndex
- ID3D10Effect::GetConstantBufferByName
- ID3D10Effect::GetDesc
- ID3D10Effect::GetDevice
- ID3D10Effect::GetTechniqueByIndex
- ID3D10Effect::GetTechniqueByName
- ID3D10Effect::GetVariableByIndex
- ID3D10Effect::GetVariableByName
- ID3D10Effect::GetVariableBySemantic
ID3D10Effect::Optimize を呼び出す前にこれらのメソッドで取得した参照は、ID3D10Effect::Optimize を呼び出すまで有効です。これにより、アプリケーションでは、使用するすべての変数、テクニック、およびパスを取得し、Optimize を呼び出した後、該当のエフェクトを使用できます。
要件
ヘッダー: D3D10Effect.h 宣言