Freigeben über


Klonen und Freigeben (Direct3D 9)

Klonen von Parametern

Beim Klonen gelten die folgenden Einschränkungen.

  • Klonen erben den Pool des ursprünglichen Effekts. Weitere Informationen finden Sie im Abschnitt Freigabeparameter.
  • Klone erben die Techniken, Läufe, Parameter und Anmerkungen des ursprünglichen Effekts (einschließlich aller Anmerkungen, die mit ID3DXEffect hinzugefügt wurden).
  • Klonen erben die dynamisch hinzugefügten Anmerkungen des ursprünglichen Effekts.
  • Beim Klonen auf einem neuen Gerät tritt ein Fehler auf, wenn der Pool des ursprünglichen Effekts nicht NULL war und der ursprüngliche Effekt einen freigegebenen geräteabhängigen Parameter (z. B. eine Textur oder einen Shader) enthielt.

Freigabeparameter

Ein Pool ist ein Puffer, der Effektparameter zwischen verschiedenen Effekten gemeinsam verwendet. Um einem Pool Parameter hinzuzufügen, geben Sie beim Erstellen des Effekts eine freigegebene Verwendung an.

Für einen Pool gelten die folgenden Einschränkungen.

  • Ein Parameter wird dem Pool hinzugefügt, wenn dem Pool zum ersten Mal ein Effekt mit diesem (freigegebenen) Parameter hinzugefügt wird.
  • Ein Pool ruft erste Werte aus dem ersten freigegebenen Parameter ab. anschließend freigegebene Parameter erhalten ihre Werte aus dem Pool.
  • Ein Parameter wird aus dem Pool gelöscht, wenn alle Effektverweise auf den freigegebenen Parameter freigegeben werden.
  • Alle Effekte im Pool, die denselben (freigegebenen) geräteabhängigen Parameter enthalten, müssen dasselbe Gerät aufweisen.

NULL kann verwendet werden, um keinen Pool anzugeben. In diesem Fall werden keine Parameter freigegeben. Dies entspricht fast der Angabe eines eindeutigen Pools nur für diesen Effekt. Der einzige Unterschied besteht darin, dass der Klon beim Klonen des Effekts seine freigegebenen Parameter nicht mit dem Original teilt.

Effektformat