0

我需要将我的代码从 C++/OpenGL 和 Config.txt 情况移动到 UI 友好空间。有人告诉我在这里尝试 Qt 并将其安装在 Windows 中。

我遇到的问题是它不支持开箱即用的 OpenGL 版本,我必须使用 -opengl 桌面参数进行重建。

第一次这样做,但能够按照说明(以及大量的 Google)进行操作,并且“成功”地构建了它。我现在的问题是我不确定如何使我拥有的文件与 Qt Creator 一起使用。

我将 git 创建的 qt5 文件夹中的所有文件夹复制到 Qt5.0.1/5.0.1/Src 中的 Src 文件夹中,但 hellogl 示例仍然无法构建。

我检查了选项,它指向 Qt5.0.1/5.0.1/msvc2010/bin 中的 qmake,所以我将 qmake.exe 从 qtbase/qmake 复制到该文件夹​​(重命名旧文件夹),现在 Qt Creator 构建我的 Windows 系统上的 hellogl 示例。

我担心的是,我这样做是否正确?我摸索着得到了一些东西,但这是我从 git 构建 qt5 后应该采取的方式吗?如果不是,我应该采用什么方式让它与 Qt Creator 一起工作?

4

1 回答 1

1

在 Qt 中使用现代 OpenGL 功能集(后固定功能管道)的典型方法是使用扩展管理员 (GLEW),它会在 Qt 包含任何 OpenGL 头文件之前找到图形驱动程序支持的所有 OpenGL 函数。

要做到这一点,只需执行以下操作:

  1. 如果您还没有,请下载GLEW(或其他扩展管理员,如果您愿意)并将其安装在您的系统路径中。我会推荐 32 位软件包,因为它更容易使用。

  2. #include glew.h在您的源代码中包含可能使用 OpenGL 头的任何其他 Qt 头之前。为了安全起见,请将 glew.h 作为源代码中包含的第一个标头。

  3. 在 Qt 项目的 .pro 文件中添加LIBS += -lGLEW(mac/linux) 或LIBS += -lglew32(windows) 行。

注意:在实现使用后固定功能管道设施的应用程序时,请注意使用 Qt OpenGL 包装器。Qt 5 的 OpenGL 包装器都使用 OpenGL ES 2.0 规范运行,当与 OpenGL 3/4 代码交错时可能会导致问题。在 QGLWidget 上执行重绘时,即使 QPainter 也会变得很麻烦,因为它大量使用了固定功能转换堆栈。我目前正在开发一个名为 QGLX 的库,它提供了为符合现代桌面 OpenGL 规范而设计的替代 Qt 包装器。Beta 版有望在今年年底发布,用于 Qt 4 和 Qt 5。

于 2013-03-19T05:43:46.530 回答