我正在尝试在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唯一的问题吗?
答案 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
编译,然后运行,而不是尝试通过ghci
或runghc
运行,那么GLUT对我有用。你试过了吗?
答案 1 :(得分:1)
你在MacBook上吗?一个快速的解决方法是转到System Prefs / Energy Saver选项并禁用“自动图形切换”。
我不知道为什么会这样,但这太可怕了。对于我来说,使用C程序不会发生这种情况,例如glxgears。