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 altre info, vedi Modernizzare l'app desktop usando il livello visivo.

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.

Esercitazione 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 di 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 Oggetto Device.
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 altre informazioni, vedere Oggetti 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 Opacity e Struttura ad albero visuale.
Non nascondere un oggetto visivo applicando un rettangolo di ritaglio vuoto (con dimensioni zero) a un oggetto visivo. Rimuovere invece l'oggetto visivo dalla struttura ad albero visuale.
La rimozione di un oggetto visivo dalla struttura ad albero visuale comporta prestazioni migliori rispetto all'applicazione di un rettangolo di ritaglio vuoto.
Per altre informazioni, vedere Ritaglio.
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 colori singolo di grandi dimensioni, creare una superficie bitmap più piccola e quindi applicare una trasformazione della 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 altre 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, comporta la rotazione di entrambi gli oggetti visivi in nulla.
Per altre informazioni, vedere Effects (Effetti).

Considerazioni sulla sicurezza

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

Come usare DirectComposition