コピー作成と共有
コピー作成と共有
パラメータのコピー作成
コピー作成には、次のような制限がある。
- コピーは、元のエフェクトのプールを継承する。「パラメータの共有」を参照すること。
- コピーは、元のエフェクトのテクニック、パス、パラメータ、およびコメント (ID3DXEffect を使って追加したすべてのコメントを含む) を継承する。
- コピーは、元のエフェクトに動的に追加されたコメントを継承する。
- 元のエフェクトのプールが NULL でなく、元のエフェクトがデバイスに依存した共有のパラメータ (テクスチャやシェーダなど) を含んでいる場合、新しいデバイスへのコピー作成は失敗する。
パラメータの共有
プールは、異なるエフェクト間でエフェクト パラメータを共有するためのバッファである。プールにパラメータを追加するには、エフェクトの作成時に共有の使用方法を指定する。
プールには、次のような制限がある。
- プールにパラメータが追加されるのは、その (共有の) パラメータを含むエフェクトを初めてそのプールに追加したときである。
- プールは最初の共有パラメータから初期値を取得し、それ以降の共有パラメータはプールから値を取得する。
- 共有パラメータを参照するすべてのエフェクトが解放されると、そのパラメータはプールから削除される。
- プール内で、デバイスに依存する同じ (共有) パラメータを含んでいるエフェクトは、すべてが同じデバイスを使わなければならない。
プールを指定しない場合は NULL を使う。この場合、パラメータは 1 つも共有されない。これは、そのエフェクトだけの固有のプールを指定するのとほぼ同じことである。1 つだけ違うのは、エフェクトのコピーを作成したときに、コピーは共有パラメータを元のエフェクトと共有しない点である。