将QT5与glLoadGen一起使用

Using QT5 with glLoadGen

本文关键字:一起 glLoadGen QT5      更新时间:2023-10-16

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

问题是,在gl.h被包含之前,GlWidget和glLoadGen都希望被包含在内,但在某个时候也都包含gl.h。因此,似乎不可能编译一个同时使用两者的文件。

有了一些包装器,我可能可以绕过这个问题,但我宁愿不这样做。有什么干净的解决方案可以解决这个问题吗?

干净的解决方案是分离您的关注点。有一个与Qt交互的源文件,它使用Qt的东西。然后使用glLoadGen的东西创建另一个与OpenGL交互的源文件。

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

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


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

当然,编写glLoadGen样式并非易事。您必须了解一些Lua脚本,并且必须了解生成系统的实际工作方式。