Я пытаюсь сделать графику в 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?
Ответ 1 · рейтинг 2 · lancelet
Чтобы ответить на вторую часть вашего вопроса: существует нерешенная проблема с GLFW (по крайней мере, GLFW-b) в OS X с GHC 7.6.3. См. этот выпуск GitHub:
https://github.com/bsl/bindings-GLFW/issues/8
Учитывая комментарии к этой проблеме, кажется, что проблема будет решена после выпуска GHC 7.8.
Лично я В настоящее время я нахожусь в той же лодке, что и вы, ищу ЛЮБУЮ привязку OpenGL Haskell, которая работает под OS X!
Обновление: я обнаружил, что GLUT работает для меня, если я сначала компилирую с помощью ghc, а затем запускаю, а не пытаюсь запустить через ghci или runghc. Вы пробовали это?
Ответ 2 · рейтинг 1 · Amos Robinson
Вы на макбуке? Быстрое хакерское решение - перейти к параметрам "Системные настройки" / "Экономия энергии" и отключить "Автоматическое переключение графики".
Я не знаю, почему это происходит, но это чертовски раздражает. У меня этого не происходит с программой C, например glxgears.