Domanda

Sto programmando opengl usando glut come gestore di finestre, ultimamente ho pensato se ci fossero dei vantaggi nel passare a un gestore di finestre alternativo come wxWidgets o qt.

Ci sono differenze sostanziali o è solo una questione di gusti? Poiché glut fornisce alcune funzioni aggiuntive per la programmazione di Opengl oltre alle funzionalità di gestione delle finestre, sarebbe utile combinare un toolkit aggiuntivo con glut?

È stato utile?

Soluzione

Posso solo parlare per esperienza dell'uso di QT:

Una volta che hai impostato la struttura di base, allora è un semplice caso di fare ciò che hai sempre fatto: ad esempio, il progetto su cui sto lavorando al momento ha un widget gl aperto incorporato nella finestra.

Questo widget ha funzioni come inizializzareGL, ridimensionare ... paintGL ecc. I vantaggi includono la possibilità di passare le variabili a da altre finestre / widget ecc. QT ha anche funzioni aggiuntive per gestire clic e cose del mouse (ottimo per 2d roba, roba 32d richiede matematica più complessa)

Altri suggerimenti

Devi passare dall'eccesso non appena desideri controlli e dialoghi più complessi ecc.

QT ha un eccellente widget openGL c'è anche un articolo interessante nella newsletter circa controlli di disegno su GL per dare fantastici effetti in stile WPF.

wxWidgets include anche un esempio aperto ma non ho molta esperienza.

Beh, glut va bene per far funzionare un prototipo.

Dipende dal sistema operativo, ma in seguito potresti voler impedire l'avvio dello screen saver, potresti disabilitare l'interruttore attività (solo i cattivi lo fanno però), potresti voler reagire allo spegnimento eventi. Potresti scoprire che l'eccesso non può gestire i dead-key su uno o un altro sistema operativo, o, o, o ... Ci sono migliaia di ragioni per cui potresti voler sbarazzartene.

È un framework progettato per facilitare l'inizio e fare il 90% delle solite cose di cui hai bisogno, ma non può mai fare il 100%. Puoi sempre hackerarti o sollevare il codice di inizializzazione, ma un giorno scoprirai che è più facile riprogettare da zero il codice di inizializzazione e adattarlo alle tue attività.

Aprire una finestra e inizializzare OpenGL non è scienza missilistica. Usa glut fintanto che funziona per te, ma non appena i problemi si liberano di esso. Ti ci vorrà solo una mano piena di ore, quindi non perderai molto.

Per un progetto di giocattolo, tuttavia, la strada da percorrere è l'eccesso.

SDL , sebbene non solo un gestore di finestre, renderà più semplice l'uso di OpenGL rispetto al codice Win32 non elaborato . Tuttavia, la mia esperienza con Qt, GTK e wxWidgets non è stata così male ... sicuramente non molto migliore di Win32, probabilmente in questi casi è una questione di gusti.

Consiglio di evitare widget e wrapper come GLUT se si desidera un ottimo livello di controllo sulla finestra e le risorse, ma se si sta semplicemente cercando velocità di sviluppo, questi strumenti sono ideali.

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