Clonage et partage (Direct3D 9)

Paramètres de clonage

Le clonage a les restrictions suivantes.

  • Les clones héritent du pool de l’effet d’origine. Consultez la section Paramètres de partage.
  • Les clones héritent des techniques, des passes, des paramètres et des annotations de l’effet d’origine (y compris toutes les annotations ajoutées avec ID3DXEffect).
  • Les clones héritent des annotations ajoutées dynamiquement à l’effet d’origine.
  • Le clonage sur un nouvel appareil échoue si le pool de l’effet d’origine n’était pas NULL et si l’effet d’origine contenait un paramètre partagé dépendant de l’appareil (tel qu’une texture ou un nuanceur).

Paramètres de partage

Un pool est une mémoire tampon qui partage les paramètres d’effet entre différents effets. Pour ajouter des paramètres à un pool, spécifiez une utilisation partagée lors de la création de l’effet.

Un pool a les restrictions suivantes.

  • Un paramètre est ajouté au pool la première fois qu’un effet contenant ce paramètre (partagé) est ajouté au pool.
  • Un pool obtient les valeurs initiales du premier paramètre partagé ; les paramètres partagés obtiennent ensuite leurs valeurs à partir du pool.
  • Un paramètre est supprimé du pool lorsque toutes les références d’effet au paramètre partagé sont libérées.
  • Tous les effets du pool qui contiennent le même paramètre dépendant de l’appareil (partagé) doivent avoir le même appareil.

Null peut être utilisé pour spécifier aucun pool, auquel cas aucun paramètre n’est partagé. Cela équivaut presque à spécifier un pool unique uniquement pour cet effet. La seule différence est que lorsque l’effet est cloné, le clone ne partage pas ses paramètres partagés avec l’original.

Format de l’effet