2013-04-30 111 views
1

我正在使用qt 5.0.2(Windows x64)。问题是,qt只支持OpenGl 3函数,例如我不能使用glBegin(),glortho()等。你有任何想法如何在qt中使用OpenGL 1.x?如何在qt中使用OpenGL 1.x?

+0

您是否内置QT你自己或得到一个pre-pac kaged版本(MSVC2010等)? – Hydronium 2013-04-30 20:10:44

+0

是否有什么特别的原因让你将全新的(Qt 5)和古老的技术(OpenGL 1.x)混合? – cmannett85 2013-04-30 20:58:53

回答

0

我用这包括作为标题,“gl.h”,在我想调用OpenGL函数我的Qt应用程序:

#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

它包括内置预用于Windows的dlls用于Visual C++ 2010和MinGW的环境。

4

你从哪里得到的(错误的)想法的Qt 5仅支持的OpenGL> = 3.0? Qt独立支持所有当前桌面OpenGL版本和配置文件(从1.1到4.3,Core/Compability)以及OpenGL ES(1.1到3.0)。

以任何机会,您使用的Windows二进制的OpenGL ES 2下载(通过角)?如果是这样,请下载Desktop GL版本(或者自己构建,通过-opengl desktop进行配置)。

需要注意的是,在一般情况下,

  1. 你需要支持你问的版本(FI OS X 10.8支持多达3.2)
  2. 你需要一个Qt构建符合GL版本,你是司机要使用
  3. 的Qt的某些部分需要一定GL版本:QtQuick2需要OpenGL> = 2.0或ES 2.0(和在OpenGL的情况下> = 3.2,一个相容性分布,必须使用)