Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 改造现有的C++;从glut/freeglut到glfw的openGL项目_C++_Opengl_Gtk_Glfw_Freeglut - Fatal编程技术网

C++ 改造现有的C++;从glut/freeglut到glfw的openGL项目

C++ 改造现有的C++;从glut/freeglut到glfw的openGL项目,c++,opengl,gtk,glfw,freeglut,C++,Opengl,Gtk,Glfw,Freeglut,我想将我的scientific 3D应用程序从Freeglut升级到GLFW,但我担心隐藏的冲突或数据丢失,事实上我的应用程序与Freeglut一起工作很有魅力,我没有任何问题,但在所有现代书籍和教程中,都建议将GLFW用于现代OpenGL(3.0+) 我看了一下GLFWAPI,它看起来像带有GLFW*前缀的Glut,但我不太确定。所以我想问三个问题: 是否值得为了GLFW而打破我现有的项目,或者坚持下去 免费供应 我会因为过剩而失去任何功能吗 GLFW与GTK+兼容吗?(因为我的GUI基于GT

我想将我的scientific 3D应用程序从Freeglut升级到GLFW,但我担心隐藏的冲突或数据丢失,事实上我的应用程序与Freeglut一起工作很有魅力,我没有任何问题,但在所有现代书籍和教程中,都建议将GLFW用于现代OpenGL(3.0+)

我看了一下GLFWAPI,它看起来像带有
GLFW*
前缀的Glut,但我不太确定。所以我想问三个问题:

  • 是否值得为了GLFW而打破我现有的项目,或者坚持下去 免费供应
  • 我会因为过剩而失去任何功能吗
  • GLFW与GTK+兼容吗?(因为我的GUI基于GTK)
  • 3-GLFW是否与GTK+兼容?(因为我的GUI基于GTK)


    使用GTK+时,既不能使用Free-/GLUT,也不能使用GLFW。GTK+有一个OpenGL小部件,并执行所有事件管理。使用它。

    我看不出有什么理由不能将opengl 3.0+与freeglut一起使用,如果您的卡很好地支持opengl 3.0+的话,通过查看GLFW,我看到了比freeglut更多的选项。我想这就是原因。不确定thoFreeglut是否支持OpenGL3。执行类似于glutInitContextVersion(3,2)的操作;glutInitContextFlags(GLUT_向前_兼容)然后您就可以开始了。@Ndv请记住,GLFW(如freeglut)只是一个GUI库(如GTK+),它与OpenGL无关。@Ndv因此,如果您想自己处理它,您将无法使用平台自己的API(wgl代表win,glX代表nix)来管理OpenGL上下文。否则,就没有理由支持GLFW/GLUT,而是反对GTK+,因为它们都只是特定于平台的OpenGL和GUI管理的包装,这使得它们只不过是支持OpenGL上下文管理的GUI库。在这方面,GLFW/GLUT和GTK+处于完全相同的抽象级别。再次声明:GLFW/GLUT与OpenGL无关,与GTK+无关。@Ndv:我只能同意Christian Rau;GLUT和GLFW不是低水平。你想看低层吗?然后看看@Ndv,上下文和窗口以及输入管理的函数是否构成GUI库。那很容易。如果您不想编写一个基于GUI库的系统(这是一个好主意),那么只需分离关注点。您必须对GTK+执行与GLUT/GLFW相同的操作,因为GLUT/GLFW与OpenGL没有任何关系。很抱歉重复,但这是人们经常忘记的一个重要事实。所以,用OpenGL编写系统,而不是GLFW/GLUT/GTK+。@Ndv好的,对不起。第三个问题的答案是否定的。两者都是完全不同的图书馆,做着同样的事情。使代码同时使用这两个库的唯一方法是不依赖任何一个库。使用GLFW为GTK+窗口创建上下文肯定不起作用。GLFW(如GLUT)与GTK+的不相容性与Qt或MFC一样。没有人会尝试将它们混合在一个项目中,如果您的代码/库要同时用于这两个项目,那么就不要依赖它们。我不明白为什么这是火焰。我不偏袒任何一方。相反,我想澄清的是,他们都是平等的,不能混为一谈。