sunLoadingImage
whowedImag
decoration left 1
decoration left 2
transhome
transprojects
transgallery
transarticles
decoration rigth
English
Українська
Show/Hide search bar
black cat logo variable logo
[01 Гру 2012]

Qt і OpenGL Core профіль

Для використання останніх версій OpenGL в Qt без допомоги QGL враппера потрібна версія Qt 4.8+. Для автоматичної ініціалізації OpenGL функцій можна скористатися бібліотекою GLEW.

Можна використати стандартний проект-заготовку з прикладу використання QGLWidget та трошки його модифікувати. Для ініціалізації останьої версії OpenGL потрібно створити формат контексту візуалізації (1), встановити необхідну версію OpenGL (2), задати використання тільки основного профілю (3). Створений формат повинен бути використаний при створенні QGLWidget (4): #include "coreglwidget.h"
int main( int argc, char* argv[] )
{
   QApplication a( argc, argv );
   QGLFormat glFormat;                            // 1
   glFormat.setVersion( 4, 2 );                   // 2
   glFormat.setProfile( QGLFormat::CoreProfile ); // 3
   CoreGLWidget w( glFormat );                    // 4
   w.show();
   return a.exec();
}

Оголошення QGLWidget-класу:
class CoreGLWidget : public QGLWidget
{
Q_OBJECT
public:
   CoreGLWidget( const QGLFormat& format, QWidget* parent = 0 );
protected:
   virtual void initializeGL();
   virtual void resizeGL( int w, int h );
   virtual void paintGL();
};

Конструктор віджета і ініціалізація контексту OpenGL з допомогою створеного раніше QGLFormat формату:
CoreGLWidget::CoreGLWidget( const QGLFormat& format, QWidget* parent )
   : QGLWidget( format, parent )
{
}

Також необхідно реалізувати initializeGL(), resizeGL() та paintGL().




Sun and Black Cat- Ігор Дихта (igor dykhta email) © 2007-2014