Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Haskell openGL и GLUT зависают в Mac OS X? Могу ли я использовать GLFW вместо GLUT?

Автор вопроса: IntegrateAllDayОтветов: 2

Я пытаюсь сделать графику в 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?

  • Вы пробовали простой тест OpenGL, написанный на C? leftaroundabout 09.01.2014
  • Это происходит в ghci или при запуске ghc --make? user2407038 09.01.2014
  • Я написал OpenGL на Java, и это прекрасно работает. Это происходит в ghci, user. IntegrateAllDay 10.01.2014

macosopenglhaskellglut

Ответы

Ответ 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.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы