[HOpenGL] problems running SmoothOpenGL3
Sven Panne
Sven.Panne at aedion.de
Sat Aug 1 10:54:00 EDT 2009
Am Freitag, 31. Juli 2009 17:25:45 schrieb Michael [Plouj] Ploujnikov:
> [...] Finally, this is what I get if I try to compile with 'ghc --make':
>
> $ ghc --make -lglut SmoothOpenGL3.hs # the linker fails without -lglut
> similar to this:
> http://www.haskell.org/pipermail/hopengl/2008-September/000756.html
I don't know what's going on here, things work for me without -lglut on
openSUSE 11.1. Which OS/distro are you using? It is hard to debug without
actually seeing it fail for oneself. Anyway, I am in the process of changing
the GLUT package to use dynamic linking internally, too, and the autoconf
dependency will be removed as well. If you like, you could give the code on
http://darcs.haskell.org/packages/GLUT/ a try and tell us about your results.
Hopefully such linking issues will be a thing of the past... (famous last
words ;-)
> [1 of 1] Compiling Main ( SmoothOpenGL3.hs, SmoothOpenGL3.o )
> Linking SmoothOpenGL3 ...
> $ ./SmoothOpenGL3
> SmoothOpenGL3: user error (unknown GLUT call glutInitContextVersion,
> check for freeglut)
That's OK: To create an OpenGL 3.x context, you need a recent version of
freeglut. Classic GLUT and older versions of freeglut simply do not have the
API entries glutInitContextVersion and glutInitContextFlags. I really, really
hope that the freeglut project admins make a release soon. I am active in this
project, but I can't make releases. There are a few GL/GLX extensions I'd like
to add to freeglut, too, but only after a release.
Depending on your OpenGL driver, you can make things work by using
./SmoothOpenGL3 classic
This will create a "normal" (i.e. legacy) context, which might work, too.
Perhaps you have to change the GLSL "#version 140" to "#version 130", your
mileage may vary, but this is a driver issue, and OpenGL 3.1 is really still
on the bleeding edge. NVIDIA's 190.18 drivers work fine for me on openSUSE
x86_64. Note that SmoothOpenGL3 is perhaps not the most elegant way to use
OpenGL 3.x, it is my first shot at a "pure" OpenGL 3.1 program which does not
use any deprecated functionality, only shaders, vertex arrays in buffer
objects, hand-calculated matrices, etc. From this example one can see that the
OpenGL package misses a Haskell representation of the various GLSL matrix
types, but that is a topic for a different mail thread. :-)
Cheers,
S.
More information about the HOpenGL
mailing list