2013-04-30 4 views
1

Я использую qt 5.0.2 (Windows x64). Проблема в том, что qt поддерживает только функции OpenGl 3 и, например, я не могу использовать glBegin(), glortho() и т. Д. Есть ли у вас представление о том, как я могу использовать OpenGL 1.x внутри qt?Как использовать OpenGL 1.x внутри qt?

+0

ли вы построили QT самостоятельно или получить pre-pac (для MSVC2010 или такой)? – Hydronium

+0

Есть ли какая-то особая причина, по которой вы смешиваете новый (Qt 5) и древнюю технологию (OpenGL 1.x)? – cmannett85

ответ

0

Я использую это включено в качестве заголовка, «gl.h», в моих приложениях Qt, где я хочу, чтобы вызывать функции OpenGL:

#ifndef GL_H 
#define GL_H 

#ifdef __APPLE__ 
#include <GL/glew.h> 
#include <GLUT/glut.h> 
#else 
#include <GL/glew.h> 
#include <GL/glut.h> 
#endif 

#endif // GL_H 

Обратите внимание, у Вас должен быть установлен правильный сборках OpenGL, GLEW и GLUT для этого включают в себя правильную работу. Если вы используете MinGW, создайте GLEW и GLUT для использования MinGW. Если вы используете Visual C++ 2010, построить их для поддержки Visual C++ 2010.

Часть моего mainwindow.cpp:

#include "gl.h" 
#include "mainwindow.h" 
#include "ui_mainwindow.h" 
#include "about.h" 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
    m_glWidget = new GLWidget(); 
    this->setCentralWidget(m_glWidget); 
} 

MainWindow::~MainWindow() 
{ 
    delete ui; 
} 

Взгляните на этот код здесь, чтобы получить полный контекст: https://bitbucket.org/pcmantinker/csc-4356/src/2843c59fa06d0f99d1ba90bf8e328cbb10b1cfb2/project2?at=master

Мой код Qt 4.x, но должно быть достаточно легко портировать на Qt 5. Кроме того, здесь есть ссылка на веб-странице класса, который я взял осенью 2012 года: http://csc.lsu.edu/~kooima/csc4356/index.html

Она включает в себя преднастроенным dll для Windows en vironments для Visual C++ 2010 и MinGW.

4

Где вы получили (неправильную) идею о том, что Qt 5 поддерживает только OpenGL> = 3.0? Qt самостоятельно поддерживает все текущие версии и профили OpenGL для настольных ПК (от 1.1 до 4.3, Core/Compability), а также OpenGL ES (от 1.1 до 3.0).

Возможно, вы используете бинарные загрузочные файлы OpenGL ES 2 (через ANGLE) для Windows? Если это так, загрузите версию Desktop GL (или создайте ее самостоятельно, пропустив -opengl desktop для настройки).

Обратите внимание, что, в общем,

  1. вам нужны драйверы, которые поддерживают версию вы просите (фи OS X 10.8 поддерживает до 3.2)
  2. вам нужен Qt построить соответствующие версии GL вы собирается использовать
  3. некоторые части Qt требуют определенных GL версии: QtQuick2 требует OpenGL> = 2,0 или ES 2.0 (и в случае OpenGL> = 3.2, профиль совместимости необходимо использовать)
Смежные вопросы