如何在qt中使用OpenGL 1.x?

时间:2013-04-30 19:58:53

标签: qt opengl

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

2 个答案:

答案 0 :(得分:4)

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

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

请注意,一般来说,

  1. 您需要支持您要求的版本的驱动程序(f.i. OS X 10.8支持最多3.2)
  2. 您需要与您将要使用的GL版本匹配的Qt版本
  3. Qt的某些部分需要某些GL版本:QtQuick2需要OpenGL> = 2.0或ES 2.0(如果OpenGL> = 3.2,则必须使用兼容性配置文件)

答案 1 :(得分:0)

我在我的Qt应用程序中使用它作为标题“gl.h”,我想调用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

它包括用于Visual C ++ 2010和MinGW的Windows环境的预构建dll。