问题 HUTell的GLUT替代品?


我不想使用GLUT,因为它没有类似Haskell的感觉。它基本上迫使你使用 IORef 等等,因为回调。

我考虑过了 GLFW,这似乎很简单,让我在monad中进行游戏循环。但它似乎有不同的硬件问题,例如,它在我的笔记本电脑上工作正常,但在我的桌面上没有。在窗户上,纹理消失了。

所以我想通过SDL进入,但是Windows依赖关系可能存在问题,我只是不知道需要哪个DLL。

那么打开OpenGL窗口还剩下什么呢?


2371
2017-12-08 00:30


起源

从几周前开始,您是否看到了sigfpe对GLUT的令人愉快的令人愉快的讨论 blog.sigfpe.com/2011/10/... ?没有IORefs,但也许它不是你想要的那种'Haskell-like'。 - applicative
SDL对我没有问题 - Qchmqs


答案:


GLUT,其声誉不佳,完好无损,是我发现的最好的。

然而,不使用它并不是一个好的理由。您处于一个低于您希望在此处用于项目的抽象的级别。以同样的方式,你不应该使用OpenGL,因为它与命令式的想法深深纠缠在一起。

但是GLUT和OpenGL都是 精细。关键是在使用它们之前将它们包装成更好的抽象。我已发布用于在OpenGL中破解我的2D图形包装器, 图形drawingcombinators。我相信还有其他的尝试,我已经离开了图形游戏一段时间,所以我不再精通最先进的技术。

结束GLUT有点困难。 IORefs的功能不亚于 IO 本身,并避免表达互动 IO (和其他命令式结构)你需要某种形式的 FRP。最后,这些FRP库将最终包含在其下的命令性想法 - 当您处理为C编写的库时,您将无法逃避这一点。无论如何,生活在其下的东西是非常不重要的 - 所有软件都有电压系统。

无论如何,几年前我正在研究时,GLUT是唯一真正跨平台工作的图书馆。我更喜欢......的界面 所有 其他人,但每个人只在某些受控条件下工作。这是一个主要的限制,如果你不分享它,你可能会尝试别的东西。但是窗口界面是一个相当容易包装的薄层,您无需根据此选择做出任何重大决策。


14
2017-12-08 02:22





如果你说台式机/笔记本电脑究竟不起作用,那会更好。使用Haskell绑定可以获得GLFW的C源代码。它几乎只使用一些基于平台的特定API,就是这样。


1
2017-12-08 14:28