Strumenti Utente



indice

Qt e OpenGL - Intro alla classe QOpenGLWidget

Nel precedente articolo su Qt5 e le Opengl abbiamo cominciato a vedere come utilizzare la nuova infrastruttura Opengl introdotta nelle Qt5 derivando dalla classe QWindow. Abbiamo anche evidenziato che la classe QGLWidget già presente nelle Qt4, benché ancora presente in Qt5, è stata dichiarata obsoleta, senza che ne venisse fornito un vero e proprio sostituto. Questo è stato vero fino alla versione 5.4 con cui finalmente la vecchia QGLWidget è stata aggiornata alla nuova infrastruttura, diventando QOpenGLWidget.

Quando usare QWindow e quando QOpenGLWidget

QOpenGLWidget deriva da QWidget, quindi se abbiamo realizzato la nostra interfaccia usando oggetti derivati da QWidget, ci sarà più comodo usare QOpenGLWidget che potrà essere inserito direttamente nel layout come qualsiasi altro QWidget. Se invece non abbiamo bisogno di QWidget, ad esempio perché stiamo lavorando con QtQuick, allora preferiremo QWindow.

Qt e OpenGL - Introduzione

Con la nuova release delle Qt sono state introdotte nuove classi per l'impiego delle librerie grafiche Opengl.

In questo articolo accenneremo brevemente alle principali novità introdotte e vedremo un esempio applicativo disegneremo un triangolo in una classe derivata da QWindow. Nell'articolo Qt e OpenGL: Intro alla classe QOpenGLWidget potete invece vedere come realizzare lo stesso risultato reimplementando la classe QOpenGLWidget.

Il perché di tanti cambiamenti

Chi di voi proviene dalla versione 4 delle Qt noterà molti cambiamenti nell'impiego delle librerie Opengl all'interno del framework. I motivi di quello che sembrerebbe un restyling in realtà sono molto più profondi. Con le Qt5 si è cercato di utilizzare maggiormente la GPU per renderizzare la grafica delle interfacce. Per fare questo molte funzionalità che prima erano all'interno del modulo QtOpengl sono state estese al modulo QtGui.

Con l'occasione però sono state scritte nuova classi: ad esempio la classe QGlContext è stata riscritta nella classe QOpenglContext, QGlShaderProgram è diventata QOpenglShaderProgam etc. Le nuova classi, rispetto alle precedenti, hanno prestazioni leggermente migliori, hanno delle API più semplici e permettono l'impiego di un QOpenglContext su più superfici. Per approfondire l'argomento vi consiglio di leggere cosa dice in merito uno degli sviluppatori delle Qt all'indirizzo http://permalink.gmane.org/gmane.comp.lib.qt.devel/9065.


indice.txt · Ultima modifica: 2013/07/08 10:00 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email