#143 - Forzare la modalità di rendering software nelle applicazioni WPF
di Cristian Civera, in Windows Presentation Foundation, 23 ottobre 2009
Il motore di rendering di Windows Presentation Foundation si poggia sulle funzionalità di Direct3D e delle API che lavorano a stretto contatto con la GPU, il processore della scheda grafica. Questo permette di sfruttare anche questo dispositivo, montato sulla maggior parte dei PC, ottenendo il massimo delle prestazioni con animazioni le fluide possibili.
Su alcuni dispositivi la GPU può però non esserci, il motore di WPF se ne accorge e grava tutto il sistema di rendering sulla CPU principale, lavorando quindi in modalità software. Questo può comunque bastare per fornire semplici animazioni e far procedere correttamente l'applicazione; è possibile inoltre con lo script #23 personalizzare il layout in funzione delle prestazioni della macchina.
In alcuni casi purtroppo, specie in schede grafiche integrate, sebbene il tier di valutazione restituisca un pieno supporto alle funzionalità GPU, per colpa di driver e della GPU stessa si ottengono scarse prestazioni che paradossalmente si possono migliorare escludendo la GPU e facendo lavorare direttamente la CPU. Per forzare questa modalità è possibile ricorrere alla classe HwndTarget che attraverso la proprietà RenderMode permette di forzare la modalità di rendering.
Nell'esempio successivo si veda quindi come ottenere l'oggetto HwndTarget dato l'oggetto visuale figlio della finestra.
public MyWindow() { HwndSource hwndSource = PresentationSource.FromVisual(this); // Ottengo la finestra con composition rendering HwndTarget hwndTarget = hwndSource.CompositionTarget; // Forzo il rendering su CPU hwndTarget.RenderMode = RenderMode.SoftwareOnly; }
Questa soluzione va comunque sempre considerata come ultima possibilità da sfruttare. E' infatti preferibile cercare driver video migliori e avere a disposizione un hardware che supporti le caratteristiche di WPF.
Approfondimenti
-
Windows Phone 7 Series: al debutto la nuova versione di Windows Mobile
-
rilasciato il #wpf toolkit di febbraio 2010 http://u.aspitalia.com/e8
-
#135 - Gestire il canale di comunicazione con WCF
-
#111 - Personalizzare la serializzazione delle entità di ADO.NET Data Services
-
#112 - Raggruppare i siti in IIS 7.0 in base all'ApplicationPool con LINQ to Objects
-
Disponibile la beta 1 del .NET Framework 4.0 e di Visual Studio 2010
-
LINQ to Reflection
-
#164 - Eseguire una stored procedure tramite l'Entity Client di Entity Framework
-
Speciale Windows Azure: la piattaforma di Microsoft per il cloud computing
-
Windows 7 su un computer desktop
-
#1002 - Riordinare gli elementi di una lista tramite Drag and Drop con jQuery

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.