Haskell openGL和GLUT冻结在Mac OS X上?我可以使用GLFW而不是GLUT吗?

时间:2014-01-08 23:21:38

标签: macos opengl haskell glut

我正在尝试在Haskell中做图形并且一直在使用Haskell.org的教程(http://www.haskell.org/haskellwiki/OpenGLTutorial1)。但是,当我尝试执行以下代码时(此代码直接来自上面的链接教程):

import Graphics.UI.GLUT

main :: IO ()
main = do
  (_progName, _args) <- getArgsAndInitialize
  _window <- createWindow "Hello World"
  displayCallback $= display
  mainLoop

display :: DisplayCallback
display = do
  clear [ ColorBuffer ]
  flush

一切都成功编译但在实际运行“主”时,会打开一个白色的ghc窗口并立即冻结。我尝试过使用本教程中的其他代码,但无济于事。我正在运行OS X 10.8.5并使用EclipseFP。这是MAC唯一的问题吗?

2 个答案:

答案 0 :(得分:2)

回答你问题的第二部分:在OS X上使用GHC 7.6.3,GLFW(至少是GLFW-b)存在一个未解决的问题。请参阅此GitHub问题:
https://github.com/bsl/bindings-GLFW/issues/8

鉴于对该问题的评论,一旦GHC 7.8被释放,问题就会得到解决。

就个人而言,我现在和你在同一条船,寻找任何在OS X下工作的OpenGL Haskell绑定!

更新:我发现如果我先用ghc编译,然后运行,而不是尝试通过ghcirunghc运行,那么GLUT对我有用。你试过了吗?

答案 1 :(得分:1)

你在MacBook上吗?一个快速的解决方法是转到System Prefs / Energy Saver选项并禁用“自动图形切换”。

我不知道为什么会这样,但这太可怕了。对于我来说,使用C程序不会发生这种情况,例如glxgears。