Condividi tramite


Comportamento in modalità schermo intero

Un driver di visualizzazione in modalità utente può determinare che un dispositivo di rendering è in modalità schermo intero:

  • Se il flag di campo a bit fullscreen è impostato nel membro Flag della struttura D3DDDIARG_OPENRESOURCE a cui punta il parametro pResource in una chiamata alla funzione OpenResource del driver.

  • Se il flag di campo a bit primario è impostato nel membro Flags della struttura D3DDDIARG_CREATERESOURCE a cui punta il parametro pResource in una chiamata alla funzione CreateResource del driver.

Un'applicazione sviluppata per Microsoft DirectX 9.0 o versioni precedenti causerà il runtime di Microsoft Direct3D per chiamare OpenResource per aprire la superficie primaria condivisa e quindi CreateResource per creare eventuali buffer back aggiuntivi. Un'applicazione Microsoft DirectX 9L causerà che il runtime Direct3D chiami CreateResource (senza chiamare OpenResource) per creare tutti i buffer della catena di scambio. Il runtime Direct3D specifica l'orientamento della superficie primaria nel membro Rotazione delle strutture di D3DDDIARG_OPENRESOURCE e D3DDDIARG_CREATERESOURCE a cui punta il parametro pResource nelle chiamate alle funzioni OpenResource e CreateResource rispettivamente.

Per un dispositivo a schermo intero, un driver di visualizzazione in modalità utente deve bloccare una risorsa ruotata, eseguire il rendering in una risorsa ruotata ed eseguire trasferimenti a blocchi bit (bitblt) da una risorsa ruotata. In genere, il driver di visualizzazione in modalità utente crea destinazioni di rendering provvisorie nell'orientamento ruotato (tutti i blocchi, i bitblts e i rendering andranno a queste destinazioni di rendering provvisorie) e le allocazioni primarie nell'orientamento orizzontale ,ovvero l'orientamento usato dal convertitore digitale-analogico [DAC] per l'analisi. Quando il driver di visualizzazione in modalità utente viene chiamato per scorrere i dati, esegue una rotazione bitblt dalla destinazione di rendering intermedio al buffer orizzontale prima di chiamare la funzione pfnPresentCb per emettere il comando flip.

Ogni volta che un driver di visualizzazione in modalità utente deve eseguire un bitblt che implica una risorsa ruotata e una risorsa non ruotata, il runtime Direct3D specifica il flag Ruotare il campo bit nel membro Flag della struttura D3DDDIARG_BLT in una chiamata alla funzione Blt del driver per indicare al driver che la rotazione corretta deve verificarsi per il bitblt.

Le applicazioni DirectX 9L possono essere a conoscenza della rotazione, il che significa che eseguiranno il rendering di tutto nell'orientamento appropriato e gestiranno correttamente i blocchi in un buffer ruotato. Quando il runtime Direct3D crea una catena di scambio per un'applicazione con riconoscimento della rotazione, il runtime specifica sempre la rotazione come D3DDDI_ROTATION_IDENTITY nel membro Rotazionedella struttura D3DDDIARG_CREATERESOURCE perché il driver di visualizzazione in modalità utente non è necessario eseguire alcuna azione speciale per il funzionamento dell'applicazione con riconoscimento della rotazione.