Entrambe le parti precedenti la revisione
Revisione precedente
Prossima revisione
|
Revisione precedente
|
tutorial_qt:opengl_01bis [2015/01/22 17:04] mickele |
tutorial_qt:opengl_01bis [2015/05/05 14:43] (versione attuale) mickele |
====== Qt e Opengl: Intro alla classe QOpenGLWidget ====== | ====== Qt e OpenGL - Intro alla classe QOpenGLWidget ====== |
| |
Nel [[tutorial_qt:opengl_01|primo 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. | Nel [[tutorial_qt:opengl_01|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 ===== | ===== Quando usare QWindow e quando QOpenGLWidget ===== |
m_program->release(); | m_program->release(); |
} | } |
| |
| Otterremo così il seguente risultato |
| |
| {{ :tutorial_qt:opengltut01bis-01.png | Il risultato del codice riportato nel paragrafo}} |
| |
Se confrontiamo il codice appena scritto con [[[[tutorial_qt:opengl_01||quello necessario con la classe QWindow]] notiamo una decisa semplificazione, che nasce principalmente dalla maggiore specializzazione della classe QOpenGLWidget. | Se confrontiamo il codice appena scritto con [[[[tutorial_qt:opengl_01||quello necessario con la classe QWindow]] notiamo una decisa semplificazione, che nasce principalmente dalla maggiore specializzazione della classe QOpenGLWidget. |
... | ... |
painter.end(); | painter.end(); |
| |
| {{ :tutorial_qt:opengltut01bis-02.png |Un esempio di cosa si può fare mescolando comandi opengl alla classe QPainter}} |
| |
| Nell'usare tale tecnica bisgona tener conto di un dettaglio: ogni volta che creiamo QPainter, viene reimpostato il contesto opengl. Questo vuol dire che eventuali stati che sono stati impostati nel metodo initializeGL() vengono resettati. |
Al link [[http://ingegnerialibera.altervista.org/blog-file/opengltut01bis.zip|ingegnerialibera.altervista.org/blog-file/opengltut01bis.zip]] trovate un progetto riassuntivo di quanto visto nell'articolo. | Al link [[http://ingegnerialibera.altervista.org/blog-file/opengltut01bis.zip|ingegnerialibera.altervista.org/blog-file/opengltut01bis.zip]] trovate un progetto riassuntivo di quanto visto nell'articolo. |
| |
| ===== Potrebbero interessarti anche... ===== |
| |
| Un elenco degli altri articoli disponibili sull'argomento: |
| <blog related> |
| </blog> |