关于c ++:如何为使用GLFW的OpenGL应用程序构建GUI?

How can you build a GUI for an OpenGL app that uses GLFW?

我知道类似这样的问题有一个以上的答案,但是老实说,我正在寻找任何答案。
这是我的问题。我正在进入图形编程,并开始学习OpenGL。我现在有一个非常小的3D引擎,可以在窗口中加载和绘制3D模型。对于实际的窗口,我当前正在使用GLFW。

一切都很棒,除了现在我真的很想在我的应用程序中添加一些菜单和按钮。我还希望有输入回调(例如,当用户移动鼠标时,3D模型会相应旋转)

因此,任何人都可以给我一些有关如何做到这一点的意见。

  • 我虽然使用WinFroms并以某种方式将我的" opengl输出"重定向到
    控件,但随后我将从glfw释放所有输入处理。而且我不知道如何将输入信息从WinFroms发送到我的OpenGL应用程序。

  • 网上有人说我可以使用QT作为GUI的东西,但是我有
    不知道如何在我的项目中实施QT(如果有教程,我会
    链接很棒)

我诚恳地寻找任何允许我使用GLFW窗口并向其中添加控件的解决方案。 (我不在乎跨平台的东西。我只需要它在Windows上工作即可)

如果有人可以向我介绍我可能使用的东西,或者至少了解整个过程的工作方式,我将非常感激。
如果还有其他可以为OpenGL应用程序提供窗口和GUI按钮的东西,我也愿意完全放弃GLFW。

再说一次,请问如果我问这个问题的方式有误,我对整个"窗口"一词的经验还很缺乏,而且几乎不了解Win32 API和类似HWND的东西是如何工作的。


是的,Qt有一些关于3D渲染和openGL使用的教程。 它带有自己的一组openGL库,该库抽象了openGL。

例如,这个http://doc.qt.io/qt-5/qt3d-basicshapes-cpp-example.html也利用了一些UI元素来帮助您入门。

移至Qt意味着丢弃您的GLFW代码,但具有Qt框架带来的更多好处。 从GLFW,GLUT等基本库的教程中学习openGL绝对没有错。

我相信一旦您使用它,您会发现它非常全面。