Domanda

Sfondo : Attualmente sto usando controlli personalizzati all'interno del mio progetto C # (i controlli di base stanno solo disegnando un aspetto personalizzato (usando gdi +?)). La maggior parte di questi controlli ha segmenti trasparenti per forme irregolari ecc.

Problema : sto cercando di sovrapporre un pannello semitrasparente (di forma irregolare) su un gruppo di controlli. Attualmente ho agganciato il pannello di copertura alla regione dei controlli coinvolti. Funziona bene e i risultati sembrano buoni, tuttavia il processo è così lento.

Domanda : posso accelerare il processo di rendering mescolando un po 'OpenGL / DirectX e facendo in modo che la scheda video esegua tutto il rendering necessario piuttosto che fare affidamento sulla CPU piuttosto lenta ?

È stato utile?

Soluzione

AFAIK non puoi davvero mischiare GDI + e OpenGL / DX.

Se stai ottenendo prestazioni lente e sei assolutamente sicuro che si tratta di un collo di bottiglia in GDI + piuttosto che nel tuo codice, allora potrebbe avere senso abbandonare GDI + e sostituire con DX / OGL. (Dovresti scrivere i tuoi controlli, tuttavia, il che sarebbe un grosso problema in @ $$)

Oppure, per un approccio più semplice, prova WPF / Silverlight! È personalizzabile e personalizzabile per impostazione predefinita ed è basato su DX.

Altri suggerimenti

Guarda WPF e Silverlight. dormiresti meglio di notte.

Hai provato ad attivare DoubleBuferring sui tuoi controlli per vedere se questo ti dà un aumento delle prestazioni?

http://www.codeproject.com/KB/graphics/DoubleBuffering.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top