C # Combina GDI + e OpenGL / DirectX
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 ?
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?