1

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

4

2 回答 2

4

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

无论如何,您是否使用 Windows 的二进制 OpenGL ES 2 下载(通过 ANGLE)?如果是这样,请下载 Desktop GL 版本(或自己构建并传递-opengl desktop给配置)。

请注意,一般来说,

  1. 您需要支持您要求的版本的驱动程序(fi OS X 10.8 最高支持 3.2)
  2. 您需要一个与您要使用的 GL 版本相匹配的 Qt 版本
  3. Qt 的某些部分需要某些 GL 版本:QtQuick2 需要 OpenGL >= 2.0 或 ES 2.0(如果 OpenGL >= 3.2,则必须使用兼容性配置文件)
于 2013-04-30T20:32:32.613 回答
0

我在我想要调用 OpenGL 函数的 Qt 应用程序中使用它作为标题“gl.h”:

#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。

于 2013-04-30T20:21:04.903 回答