将QT5与glLoadGen一起使用
Using QT5 with glLoadGen
我正在用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脚本,并且必须了解生成系统的实际工作方式。
相关文章:
- 如何将enable-if与模板参数和参数包一起使用
- 如何将PERF_AMPLE_READ与mmap一起使用
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将C++中的库和头与MinGW一起使用
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 为什么我不能将 rand() 与数组的大小一起使用?
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 不能将复制初始化与隐式转换的多个步骤一起使用
- 将fold表达式与std::一起用于两个元组
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 将 std::allocate_shared 与多态资源分配器一起使用
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 将 exprtk 与自定义类的对象一起使用
- 将 std::set 与基于键的比较器一起使用
- 将 C++ 类与 Rcpp 一起使用,从 C 或 R 修改它
- 如何将 Eigen::Ref 与 pybind11 一起使用?
- 如何将AERT_Allocate与 std:vector 一起使用
- 如何使我的 sizeof sum 结构与空参数包一起工作
- 将QT5与glLoadGen一起使用