Attesa di un evento quando il rendering non è necessario
Le app possono attendere un evento quando il rendering sullo schermo non è necessario , ovvero mentre sono occluse. Quando Desktop Window Manager (DWM) o un'app è bloccata, non è necessario eseguire il rendering e il sistema operativo può rimanere in stati di alimentazione inferiori per periodi di tempo più lunghi. In questo modo si risparmia energia e si estende la durata della batteria.
Un'app può attendere un evento quando:
- Tutti i monitor sono disattivati.
- La sessione in cui viene eseguita l'app è disconnessa.
- L'app funziona a schermo intero esclusivamente su una configurazione con un singolo monitor.
- L'app viene eseguita su un desktop diverso da quello attivo e non dispone dell'autorizzazione per il rendering sul desktop attivo.
Il sistema operativo attiva l'evento quando l'app è in grado di eseguire di nuovo il rendering. L'evento non viene eliminato durante un aggiornamento del driver o durante il processo di rilevamento e recupero del timeout (TDR); tuttavia, viene eliminato quando il nuovo adattatore e i monitor diventano attivi.
Se vuoi che l'app riceva notifiche sulle modifiche dello stato di occlusione, l'app deve registrarsi a queste notifiche. Un'app può registrarsi per ricevere una notifica sulle modifiche dello stato di occlusione tramite un messaggio a una finestra o tramite segnalazione di eventi. Per registrarsi per ricevere messaggi di notifica in una finestra sulle modifiche dello stato di occlusione, un'app chiama il metodo IDXGIFactory2::RegisterOcclusionStatusWindow. Per registrarsi per ricevere la notifica delle modifiche dello stato di occlusione tramite segnalazione eventi, un'app chiama il metodo IDXGIFactory2::RegisterOcclusionStatusEvent. Entrambi i metodi restituiscono un puntatore a un valore chiave che l'app può usare per annullare la registrazione della notifica. Per annullare la registrazione della notifica, l'app passa questo valore di chiave al metodo IDXGIFactory2::UnregisterOcclusionStatus.
Argomenti correlati