将QT5与glLoadGen配合使用

时间:2015-12-24 15:17:21

标签: c++ qt opengl qtopengl

我在C ++的Windows 8.1上用Qt5.4编写了一个3D应用程序接口。该应用程序使用glLoadGen加载OpenGL函数。

没问题,在包含gl.h之前,要包含GlWidget和glLoadGen,但在某些时候都包括gl.h。所以看起来,编译文件是不可能的,即同时使用两者。

使用一些包装器我可以绕过这个问题,但是我宁愿不这样做。这个问题有什么清洁的解决方案吗?

1 个答案:

答案 0 :(得分:1)

清洁解决方案是将您的顾虑分开。有一个与Qt交互的源文件,它使用Qt的东西。然后使用glLoadGen的东西,有另一个与OpenGL交互的源文件。

如果你有一个在概念上需要两者的函数,那么当它需要与GL交谈时,让它在OpenGL交互代码中调用函数。因此,如果要在窗口大小调整时更改视口,则可以使用Qt代码检测调整大小,然后调用一个转换为OpenGL交互代码的函数来实际调用glViewport

这样,如果你需要从Qt切换,你只需要替换与Qt交互的代码。

话虽这么说,glLoadGen实际上并不是一个OpenGL加载库。它是OpenGL加载库的生成器。它是extensible platform。因此,如果您将渲染代码粘贴在UI代码中(一般来说,这是一种糟糕的形式)对您来说非常重要,那么您可以编写一个与Qt实际兼容的生成器样式。

当然,编写glLoadGen样式并不是一件容易的事。您必须了解一些Lua脚本,并且必须阅读how the generation system actually works