Condividi tramite


Procedure consigliate per DirectComposition

Nota

Per le app in Windows 10, ti consigliamo di usare le API Windows.UI.Composition anziché DirectComposition. Per maggiori informazioni, vedi Modernizzare l'app desktop usando il Layer grafico.

In questo argomento vengono descritte le procedure consigliate per l'uso di Microsoft DirectComposition.

Procedure consigliate

La tabella seguente presenta le procedure consigliate per l'uso degli oggetti visivi Di Microsoft DirectComposition.

Pratica Descrizione
Dopo aver creato un dispositivo DirectComposition, chiamare il metodo IDCompositionDevice::CheckDeviceState in risposta a ogni messaggio WM_PAINT per assicurarsi che il dispositivo sia ancora valido.
Se il dispositivo MICROSOFT DirectX Graphics Infrastructure (DXGI) viene perso, viene perso anche il dispositivo DirectComposition associato al dispositivo DXGI. Quando rileva un dispositivo perso, DirectComposition invia il messaggio WM_PAINT a tutte le finestre. La chiamata a CheckDeviceState in risposta a ogni messaggio WM_PAINT consente di determinare se l'oggetto dispositivo DirectComposition è ancora valido e, in caso contrario, eseguire i passaggi per ripristinare il contenuto.
Per altre informazioni, vedere dispositivo oggetto.
Creare solo il numero di oggetti visivi necessari per una composizione o un'animazione e distruggere gli oggetti visivi immediatamente dopo il completamento dell'utilizzo di DirectComposition.
DirectComposition usa l'unità di elaborazione grafica (GPU), una risorsa che l'applicazione condivide con altre applicazioni e il sistema operativo. Questa procedura garantisce che tutte le applicazioni e il sistema operativo ricevano risorse GPU adeguate.
Per ulteriori informazioni, vedere Elementi visivi.
Non nascondere gli oggetti visivi impostando l'opacità su 0%; Rimuovere invece gli oggetti visivi dalla struttura ad albero visuale.
L'impostazione dell'opacità su 0% richiede più risorse di sistema rispetto alla rimozione dalla struttura ad albero visuale.
Per altre informazioni, vedere Opacità e Albero visuale.
Non nascondere un oggetto visivo applicando un rettangolo di ritaglio vuoto (con dimensioni zero) a un oggetto visivo. Invece, rimuovere l'oggetto visivo dall'albero visivo.
La rimozione di un oggetto visivo dall'albero visivo migliora le prestazioni rispetto all'applicazione di un rettangolo di ritaglio vuoto.
Per ulteriori informazioni, consulta Clipping.
Non applicare un rettangolo di ritaglio a un oggetto visivo se il rettangolo di ritaglio non è necessario, ad esempio un rettangolo di ritaglio che include l'intero contenuto bitmap dell'oggetto visivo.
I rettangoli di ritaglio non necessari danneggiano le prestazioni del sistema.
Per altre informazioni, vedere Ritaglio.
Se è necessaria una bitmap a colore singolo di grandi dimensioni, creare una superficie bitmap più piccola e quindi applicare una trasformazione di scala invece di creare una superficie di dimensioni intere.
L'applicazione di una trasformazione di scala a una superficie più piccola usa meno risorse di sistema rispetto a una superficie di dimensioni intere.
Per ulteriori informazioni, vedere Oggetti Bitmap e Trasformazioni.
Evitare di applicare trasformazioni 3D a più livelli di una struttura ad albero visuale, ad esempio a un elemento padre e ai relativi discendenti.
L'applicazione di trasformazioni 3D a più livelli di una struttura ad albero visuale può produrre risultati imprevisti perché le trasformazioni 3D non vengono moltiplicate nell'albero. Ad esempio, una rotazione di 90 gradi intorno all'asse y su un elemento figlio e una rotazione di 90 gradi attorno all'asse y su un elemento padre, comportano la rotazione di entrambi gli oggetti visivi fino a scomparire.
Per altre informazioni, vedere Effects.

Considerazioni sulla sicurezza

Gli articoli seguenti forniscono indicazioni per la scrittura di codice C++ sicuro.

Come usare directComposition