Clonazione e condivisione (Direct3D 9)

Clonazione di parametri

La clonazione ha le restrizioni seguenti.

  • Cloni ereditano il pool dell'effetto originale. Vedere la sezione Parametri di condivisione.
  • I cloni ereditano le tecniche dell'effetto originale, i passaggi, i parametri e le annotazioni (incluse tutte le annotazioni aggiunte con ID3DXEffect).
  • Cloni ereditano le annotazioni aggiunte dinamicamente dall'effetto originale.
  • La clonazione in un nuovo dispositivo avrà esito negativo se il pool di effetti originali non era NULL e l'effetto originale conteneva un parametro dipendente dal dispositivo condiviso ,ad esempio una trama o uno shader.

Parametri di condivisione

Un pool è un buffer che condivide i parametri di effetto tra effetti diversi. Per aggiungere parametri a un pool, specificare un utilizzo condiviso al momento della creazione dell'effetto.

Un pool ha le restrizioni seguenti.

  • Un parametro viene aggiunto al pool la prima volta che un effetto contenente il parametro (condiviso) viene aggiunto al pool.
  • Un pool ottiene i valori iniziali dal primo parametro condiviso; i parametri condivisi successivamente ottengono i valori dal pool.
  • Un parametro viene eliminato dal pool quando vengono rilasciati tutti i riferimenti all'effetto al parametro condiviso.
  • Tutti gli effetti nel pool che contengono lo stesso parametro dipendente dal dispositivo (condiviso) devono avere lo stesso dispositivo.

È possibile usare NULL per specificare nessun pool, in cui non vengono condivisi parametri. Ciò equivale quasi a specificare un pool univoco solo per questo effetto. La singola differenza è che quando l'effetto viene clonato, il clone non condividerà i parametri condivisi con l'originale.

Formato effetto