OpenGL status

Jason Dagit dagitj at gmail.com
Sun Jan 8 19:53:04 GMT 2012


= Overview/Problem =
The OpenGL libraries included in the HP are old (OpenGL 2.2.3.0) and I
would like to push for it to be updated.  The problem is that the
version in the HP is quickly falling out of sync with the OpenGL
standard and version 2.2.3.0 has some serious performance issues with
floating point numbers.  The situation has been languishing for too
long.  I need some guidance on how to resolve the issue so that the
next HP does not suffer from this problem.

= Background =

As I understand it, the main problem is that starting with OpenGL
2.3.0.0 [1], there was a refactoring of the packages that added new
dependencies.  Of these, StateVar, Tensor, and ObjectName were
controversial dependencies:

  * StateVar -- Some people have objected to the module name of the
StateVar package, as it is Data.StateVar.  As I understand it, there
is some concern that by having that in the HP we are encouraging
beginners to think about using state in their programs.  Data.StateVar
is very general and used by several packages (opengl, openal, hipmunk)
[2], for this reason it doesn't seem to make sense to put it under the
opengl module namespace.  I'd also like to point out, STRefs are
provided by the HP and allow programmers to use stateful references.
In the current module name landscape [3], those come from Data.STRef.

  * ObjectName -- ObjectName is shared between OpenGL and OpenAL so
putting it in the Graphics namespace seems a bad idea.  Note: Although
Data.ObjectName seems reasonable to me, I could be convinced to roll
ObjectName back into each of those packages as it's just one type
class definition (no instances) and it's used in exactly those
packages.   Plus the way the dependency is specified on hackage,
releasing an updated package will break the existing OpenGL/OpenAL
packages.

  * Tensor -- This defines some Vertex and Vector types.  Data.Tensor
seems reasonable to me.  It's used by OpenGL, OpenAL, and OpenVG.  If
I change it I should probably coordinate with Stephen Tetley the
author of OpenVG.

  * OpenGLRaw -- As far as I know this package is fine as it is, but
simply has not been added to the HP yet.

  * GLUTRaw -- Same as OpenGLRaw.

= Question =

What do I need to do to get the HP to update its dependency on OpenGL?
 For example, would changing Data.StateVar to Foreign.StateVar be
sufficient?  Is the HP willing to accept Data.StateVar?

Tickets have already been created for updating OpenGL [4] and adding
OpenGLRaw [5].

= References =

[1] http://hackage.haskell.org/package/OpenGL-2.4.0.2
[2] http://packdeps.haskellers.com/reverse/StateVar
[3] http://www.haskell.org/haskellwiki/Hierarchical_module_names
[4] http://trac.haskell.org/haskell-platform/ticket/158
[5] http://trac.haskell.org/haskell-platform/ticket/167



Thank you,
Jason



More information about the Haskell-platform mailing list