[Haskell-cafe] GLUT, FLGW, FLGW-b

Jason Dagit dagitj at gmail.com
Fri Dec 13 21:26:48 UTC 2013

The GLFW-b package only depends on base and bindings-GLFW.

The GLFW package depends on base and the OpenGL Haskell package.

I often use the Haskell OpenGLRaw package instead of OpenGL. Mostly because
OpenGLRaw matches the C API for OpenGL. That's nice when you're following
documentation as it's almost always for the C API. So then I save myself
the step of translating from C OpenGL to the Haskell OpenGL package

I could probably still use OpenGLRaw with GLFW, but it's an unnecessary
dependency. I also know that GLFW-b installs cleanly just using cabal on
Windows, OSX, and Linux. I don't recall if GLFW has that property. I think
it might require you to install the C GLFW library separately.

I hope that helps,

On Fri, Dec 13, 2013 at 1:13 PM, Vlad Lopatin <madjestic13 at gmail.com> wrote:

> >> With GLFW-b you can use either OpenGL or OpenGLRaw, whereas GLFW
> depends >> directly on OpenGL
> Excuse me, Jason, I do not understand you here.  What are you trying to
> say here?
> Regards,
> Vladimir
> On 12 December 2013 23:49, Jason Dagit <dagitj at gmail.com> wrote:
>> I started using it after making the following comparison several years
>> ago: http://blog.codersbase.com/posts/2011-03-17-picking-gui-library.html
>> Maybe that analysis is useful to you as well? Just so you know, it's
>> probably out of date by now, so you might want to double check some of my
>> claims. For example, the C library for GLFW doesn't use atexit() anymore
>> (which is a good thing).
>> Getting back to your question: As I recall, it's better maintained,
>> lighter weight, and it has better dependencies. With GLFW-b you can use
>> either OpenGL or OpenGLRaw, whereas GLFW depends directly on OpenGL. The
>> main drawback, for me, is that GLFW-b doesn't support fonts.
>> My proposed solution to that was to make a binding to the freetype2
>> library (you can find my binding on hackage/github). I never really
>> finished that project. The binding should work but it's very low level. A
>> few people have sent me example code they wrote to use it with OpenGL. It's
>> really something I should finish :) The other cool thing about using
>> freetype for fonts is that you can easily make it part of a rendering
>> system that doesn't use any OS rendering libraries (eg., add font support
>> to a ray-tracer).
>> Jason
>> On Thu, Dec 12, 2013 at 1:45 PM, Vlad Lopatin <madjestic13 at gmail.com>wrote:
>>> Thanks, Jason
>>> What makes you prefer GLFW-b instead GLFW?
>>> On 12 December 2013 19:15, Jason Dagit <dagitj at gmail.com> wrote:
>>>> On Thu, Dec 12, 2013 at 3:05 AM, Sven Panne <svenpanne at gmail.com>wrote:
>>>>> 2013/12/12 Vlad Lopatin <madjestic13 at gmail.com>:
>>>>> > I keep reading (wiki) that GLUT is a legacy package and some
>>>>> libraries (e.g.
>>>>> > GLFW) are meant to replace it.  I also see that some of the GLUT
>>>>> > functionality is based on fixed pipeline.  What is the current
>>>>> status of
>>>>> > Haskell GLUT?  Is it 'to stay' or something that is going to be
>>>>> deprecated
>>>>> > at some point?  Should one try replacing it with GLFW(-b) in a
>>>>> project, if
>>>>> > fixed pipeline is not expected to be used?
>>>>> I think this really depends on your needs: GLUT was designed as a
>>>>> simple cross-platform API for OpenGL demos and tutorials, perhaps even
>>>>> some programs of medium complexity.
>>>> I prefer GLFW-b for cross platform programs for the simple reason that
>>>> on windows GLUT requires you to install a DLL and make sure it's in the
>>>> path.
>>>> I prefer GLFW-b more generally because it's more modern, fully open
>>>> source, and under active development. The license for GLUT is open in
>>>> practice but it's not a clean open source license. I guess most people use
>>>> freeglut instead.
>>>> Jason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20131213/f7798ed0/attachment.html>

More information about the Haskell-Cafe mailing list