C++ 2009年的OpenGL窗口库

C++ 2009年的OpenGL窗口库,c++,opengl,C++,Opengl,试图为我的OpenGL应用程序选择一个创建窗口和捕获用户输入的库,但选择太多了: () 其他人 供过于求已经过时了。我喜欢GLFW,但在显示它之前,您似乎无法设置窗口位置(我希望它居中,有这么多问题吗?)。加上发展似乎也停止了。SFML有一些很好的特性,但它使用事件轮询而不是回调,我更喜欢使用回调进行解耦。我不认为我需要FLTK的所有GUI功能。SDL很慢(似乎没有利用GPU)。另外3个我不太了解(FreeGLUT、OpenGLUT、OGLWFW)。那么,邪恶中哪一个较小?

试图为我的OpenGL应用程序选择一个创建窗口和捕获用户输入的库,但选择太多了:

  • ()
  • 其他人
供过于求已经过时了。我喜欢GLFW,但在显示它之前,您似乎无法设置窗口位置(我希望它居中,有这么多问题吗?)。加上发展似乎也停止了。SFML有一些很好的特性,但它使用事件轮询而不是回调,我更喜欢使用回调进行解耦。我不认为我需要FLTK的所有GUI功能。SDL很慢(似乎没有利用GPU)。另外3个我不太了解(FreeGLUT、OpenGLUT、OGLWFW)。那么,邪恶中哪一个较小?还有其他我没听说的吗

我只是想做一个简单的2D游戏。我对OpenGL非常熟悉,因此我并不真正需要绘图例程,但我可能不会抱怨其他功能,如果它们实现正确,可能会很有用。

允许您创建一个加速的OpenGL上下文(取决于驱动程序/硬件支持)

我知道你被标记为C++,但是<强> (Python)是创建2D游戏的一个很好的库,它也支持OpenGL上下文。Pygame是基于SDL构建的

是一个新的基于OpenGL的GUI库,它具有Perl、Python、C++、C++、Vala和Ruby的绑定。我自己没用过。网址:

杂波使用OpenGL(也可以选择 OpenGL ES,用于移动和 嵌入式平台),用于渲染,但 使用一个API来隐藏底层 开发人员提供的GL复杂性。这个 杂波API旨在易于使用 使用方便、高效、灵活


我会选择Qt。Nice通用库+opengl支持GLUT和其他GLUT替代方案不应用于任何类型的生产应用程序。它们很适合组装一个快速的演示应用程序或尝试一些东西,但仅此而已

如果你想制作一个OpenGL游戏,我推荐SDL。它更关注游戏需求。它绝对可以与OpenGL一起使用。谷歌为“SDL OpenGL”做了一个简短的介绍,介绍了如何用SDL初始化OpenGL。启用OpenGL还应该启用GPU的硬件渲染


Qt是一个合理的替代方案,但如果您想将OpenGL嵌入一个更大的桌面应用程序(想想3D建模、CAD/CAM、医学可视化等),您需要访问UI的标准操作系统小部件,那么它会更好。

根据作者最近的共同响应,OGLWFW上的开发已经停止

IF  "learning c++ part of what you're trying to achieve":
then
IF  "you only want to learn OpenGL with a fullscreen mode":
  USE GLUT //Because it's VERY VERY simple. You can get set up VERY quick
ELSE:
  USE QT //Great library, has many many things that will help you. It is portable, it has a nice API
ENDIF

IF "you don't need C++":
then
   USE Python //I recommend it, it is fast, no long link times, good api, omg I love this language
背景:

我也曾尝试过简单的2D游戏,我从C++开始。我对OpenGL和C++(java后台)一无所知。这种语言让我不知所措,OpenGL也是。所以这是一个非常艰难的学习过程


我不建议这样做,因为通过使用动态语言(如Python),可以获得更快的结果。几年后,我开始学习python。我可以让“旋转立方体”工作得更快。

< P>我们在CLAILB 0.8和2008的CLAILB 2.1在我们的C++课程中有过相当好的经验。从SDL转换到SDL后,学生的生产率(以项目工作质量衡量)大幅提高。然而,需要注意的是,2.1仍然非常不完整,人们肯定会遇到一些还没有实现的特性

有几个小组使用了Irrlicht(3D引擎),效果很好

SFML看起来很有前途,但我还没有机会尝试它


正如其他人所说,供过于求并不真正适合任何严重的情况。提到的其他库更多的是GUI工具包,而不是游戏开发库。

对……忘记Qt了。但是学习曲线很陡,不是吗?以前试过一次,完全让我困惑。。。至少它附带的编辑器(令人困惑)。NetBeans 6.8似乎对Qt有一定程度的支持,因此启动并运行一个简单的应用程序并不是那么糟糕。我在Windows和Vim/make on*nix框上与Visual Studio一起使用Qt。它有非常好的文档和干净的API。我认为有一些教程可以将它与Eclipse/NetBeans等IDE一起使用。。只是谷歌为他们做了一些简单的事情现在开始运行。。。开始真的喜欢它:)它不仅有perty回调。。。他们已经神奇地为我注册了。似乎迫使您分离代码,这可能是一件好事,或者我可能已经有一大堆麻烦了:DSDL仍然是C风格的(需要清理),使用事件轮询而不是回调,并且似乎与OpenGL没有很好的集成(需要使用SDL包装函数?)。在pygame或SDL中设置OpenGL上下文后,您可以使用任何需要的OpenGL。我有一个OpenGL应用程序,基本上使用SDL进行窗口和事件轮询,使用OpenGL进行图形处理。嗯,是的。。。我并不是说它不起作用,只是要打败其他库需要更多的说服力。杂乱看起来相当混乱。你知道有哪些开源程序是用凌乱软件编写的吗?@卓尔:我认为凌乱软件目前最引人注目的开源用户是英特尔Moblin上网本OS:Moblin.org.OGLWFW目前似乎只有Win32版本。网站上说Linux/Mac支持是“计划中的”。你还没有说是许可还是跨平台支持是一个问题——如果是,你可能需要注意这一点。哦。我一定掩盖了那件事。跨平台很好。。。特别是因为我现在正在Ubuntu上开发。许可只是一个小问题,因为我似乎从来没有完成任何事情无论如何。。。我从来没有达到我能把它卖出去的地步。是的。。。但Qt似乎也更加现代和完善