GLUT альтернативы для Haskell? - PullRequest
       33

GLUT альтернативы для Haskell?

11 голосов
/ 08 декабря 2011

Я не хочу использовать GLUT, потому что у него нет ощущения, похожего на Haskell. Это в основном заставляет вас использовать IORef и тому подобное, из-за обратных вызовов.

Я рассмотрел GLFW, что кажется простым и позволяет мне делать игровой цикл в монаде. Но, похоже, у него проблемы с другим оборудованием, например, он отлично работает на моем ноутбуке, но не на рабочем столе. А на окнах текстуры исчезают.

Итак, я подумал о том, чтобы войти через SDL, но может быть проблема с зависимостями Windows, я просто не знаю, какая DLL нужна.

Так что же осталось, чтобы открыть окно OpenGL?

Ответы [ 2 ]

14 голосов
/ 08 декабря 2011

GLUT, его плохая репутация, неповрежденная и оправданная, - лучшее, что я нашел.

Однако неумелое чувство не является хорошей причиной, чтобы не использовать его. Вы находитесь на уровне ниже абстракций, которые вы хотели бы использовать для проекта здесь. Точно так же вы не должны использовать OpenGL, потому что он глубоко запутан императивными идеями.

Но GLUT и OpenGL отлично . Ключ заключается в том, чтобы обернуть их в более привлекательные абстракции перед их использованием. Я опубликовал, чтобы взломать мою оболочку для 2D-графики в OpenGL, Graphics-Drawing Combinators . Я полагаю, что есть и другие попытки, и я какое-то время не играл в графическую игру, поэтому я не очень хорошо разбираюсь в современном уровне техники.

Завершение GLUT немного сложнее. IORef s не менее функциональны, чем сам IO, и для выражения интерактивности при отказе от IO (и других императивных конструкций) вам потребуется некоторая форма FRP . В конце концов, эти библиотеки FRP обернутся необходимыми идеями - когда вы имеете дело с библиотеками, написанными для C, вы не избежите этого. И совершенно неважно, что в любом случае живет под ним - под всем программным обеспечением есть электрические системы напряжений.

Во всяком случае, пару лет назад, когда я занимался исследованиями, GLUT была единственной библиотекой, которая действительно работала кроссплатформенно. Я предпочитаю интерфейс ... всех других, но каждый работает только в определенных контролируемых условиях. Это было основным ограничением, если вы не поделитесь этим, вы можете попробовать что-то еще. Но оконный интерфейс - это тонкий слой, который довольно легко оборачивается, вам не нужно основывать какие-либо важные решения на этом выборе.

1 голос
/ 08 декабря 2011

Было бы лучше, если бы вы сказали, что именно не работает на настольном компьютере / ноутбуке.Исходный код C для GLFW доступен с привязкой Haskell.Он в значительной степени использует только некоторые базовые API для конкретных платформ и все.

...