Answers:
我刚刚发现GLUT已过时。
当您接受遇到的第一个答案时,就会发生这种情况。您得到错误的信息。GLUT 3.7不应该使用,但是FreeGLUT完全向后兼容。
但是,您的问题在其他地方。对于制作实际游戏,*形式的GLUT是不合适的。它不能让您控制主循环,您在游戏中确实需要它(FreeGLUT确实可以控制主循环,但这仍然很奇怪)。GLUT用于编写图形演示。在测试新的图形效果时,这一点非常重要,因此需要时,它应该在工具箱中。但是您的主要游戏代码永远不要使用它。
GLFW是GLUT的以游戏为中心的轻量级替代方案。它为创建OpenGL窗口以外的内容提供了基本支持。它使您可以获取输入,将图像作为纹理加载以及其他一些功能。
SDL,SFML和Allegro 5都是多媒体工具包。他们可以创建的OpenGL窗口,但他们做了很多不止于此。它们为制作游戏所需的输入,音频和其他各种内容提供全面支持。如果您要开发游戏,那么这些都是不错的起点。我个人喜欢Allegro 5,但这只是我对好的文档和简洁的API的偏见。
这取决于您是否希望游戏跨平台。对于便携式(Windows,Mac,Linux)游戏,SDL似乎是唯一的选择。
如果只针对Windows和/或XBox,则还有更好的选择,例如XNA,使您无需手动编写大量代码。
只是在原始OpenGL中编程,但要准备面对许多不直观的概念,数学和大量手册。
GLUT是一个API以及一个库。原始库确实已过时。API是另一回事,开始时很好,它只需要进行修订即可克服限制并满足新的需求。当前主要的实现是FreeGLUT,它是受支持的并且不是过时的。这意味着GLUT(如FreeGLUT)是GLUT(如库GLUT)的一个很好的选择。
上面提到的“控制主回路”的问题是不正确的。使用更新的GLUT版本,您可以更好地控制游戏循环(如果这对您很重要)。该限制由glutMainLoopEvent()修复。此限制和其他限制在此处解决:
glutMainLoopEvent
这不是管理主循环的好方法。它仍然使用事件驱动模型为您提供数据,而不是使用轮询模型在需要时从中获取所需数据。