Share via


Copia di valori Depth-Stencil

Il runtime di Microsoft Direct3D chiama la funzione Blt del driver di visualizzazione in modalità utente per copiare valori di profondità-stencil dalla memoria video alla memoria di sistema o viceversa. Il driver e l'hardware devono eseguire conversioni di formato da o a, tutti i formati di profondità opaca supportati dal driver ,ovvero tutti i formati definiti dal tipo di enumerazione D3DDDIFORMAT tranne D3DDDIFMT_D*_LOCKABLE) a o da uno dei formati seguenti:

  • D3DDDIFMT_D16_LOCKABLE

  • D3DDDIFMT_D32_LOCKABLE

  • D3DDDIFMT_D32F_LOCKABLE

  • D3DDDIFMT_S8_LOCKABLE

Il driver elimina qualsiasi canale (profondità o stencil) presente nel formato di origine ma non presente nel formato di destinazione. Il runtime non consente la copia tra superfici a stencil di profondità che non condividono tipi di canale comuni.

Il driver converte prima un valore di profondità di origine in un valore intero senza segno a 32 bit e quindi dal valore intero senza segno a 32 bit alla rappresentazione di destinazione. Le regole seguenti si applicano per entrambe queste conversioni:

  • Se il valore della profondità di origine è un valore a virgola mobile, viene applicato un blocco a [0,1] e il risultato viene moltiplicato per _MAX_UINT.

  • Se l'origine è integrale e la destinazione è un intero con precisione inferiore, vengono rimossi i bit più a destra.

  • Se l'origine è integrale e la destinazione è un intero con precisione superiore, i bit aggiuntivi più a destra vengono replicati dai bit più significativi a sinistra.

  • Se l'origine è integrale e la destinazione è un valore a virgola mobile, l'intero a 32 bit viene convertito in un valore a virgola mobile e il risultato viene diviso per _MAX_UINT.

Il driver non è necessario per fornire un trattamento speciale ai valori di profondità non distribuiti in modo non uniforme.

Il driver espande un valore stencil di origine a un intero a 8 bit, ovvero il riquadro driver esegue lo stencil di origine con zero a sinistra. Se la rappresentazione di destinazione usa precisione inferiore, il driver deve eliminare i bit più significativi per eseguire la conversione.

I driver di visualizzazione in modalità utente devono supportare copie di profondità-stencil di subrectangles arbitrari. Tuttavia, i driver non sono necessari per eseguire operazioni mirror, stretch o color-key durante le copie dello stencil di profondità. Il campionamento dei punti è richiesto in modo implicito durante le copie dello stencil di profondità.