次の方法で共有


コピー作成と共有

コピー作成と共有

パラメータのコピー作成

コピー作成には、次のような制限がある。

  • コピーは、元のエフェクトのプールを継承する。「パラメータの共有」を参照すること。
  • コピーは、元のエフェクトのテクニック、パス、パラメータ、およびコメント (ID3DXEffect を使って追加したすべてのコメントを含む) を継承する。
  • コピーは、元のエフェクトに動的に追加されたコメントを継承する。
  • 元のエフェクトのプールが NULL でなく、元のエフェクトがデバイスに依存した共有のパラメータ (テクスチャやシェーダなど) を含んでいる場合、新しいデバイスへのコピー作成は失敗する。

パラメータの共有

プールは、異なるエフェクト間でエフェクト パラメータを共有するためのバッファである。プールにパラメータを追加するには、エフェクトの作成時に共有の使用方法を指定する。

プールには、次のような制限がある。

  • プールにパラメータが追加されるのは、その (共有の) パラメータを含むエフェクトを初めてそのプールに追加したときである。
  • プールは最初の共有パラメータから初期値を取得し、それ以降の共有パラメータはプールから値を取得する。
  • 共有パラメータを参照するすべてのエフェクトが解放されると、そのパラメータはプールから削除される。
  • プール内で、デバイスに依存する同じ (共有) パラメータを含んでいるエフェクトは、すべてが同じデバイスを使わなければならない。

プールを指定しない場合は NULL を使う。この場合、パラメータは 1 つも共有されない。これは、そのエフェクトだけの固有のプールを指定するのとほぼ同じことである。1 つだけ違うのは、エフェクトのコピーを作成したときに、コピーは共有パラメータを元のエフェクトと共有しない点である。