[HOpenGL] Shader API changes

Sven Panne svenpanne at gmail.com
Sun Aug 4 16:47:26 CEST 2013


While going through the latest and greatest Red Book (8th ed., for
OpenGL 4.3), I've come to the conclusion that the current shader API
(http://lambda.haskell.org/platform/doc/current/packages/OpenGL-2.8.0.0/doc/html/Graphics-Rendering-OpenGL-GL-Shaders.html)
is fundamentally broken. It was designed at a time when shaders were
very new, so I had very little experience with them and how to expose
them to Haskell nicely, and the underlying C API has been vastly
extended over the last few years.

As I see it, there is no good backwards-compatible way of improving
the API, even though I would prefer that: I would really like to
change Shader from a type class into a normal algebraic data type,
changing quite a few signatures because of that on the way. This would
make things much easier and straightforward, and it would be much more
in the spirit of the OpenGL C API, where all shader types are treated
more or less the same.

Corollary: http://www.haskell.org/haskellwiki/Package_versioning_policy
implies that the major version of the OpenGL package has to change,
and because re-exports the GLUT package version number has to change,
too, correct?

Any thoughts, opinions and proposals are appreciated.

Cheers,
   S.




More information about the HOpenGL mailing list