Hi,
To answer Edward Tate: I'm not using LispBuilderSDL. In fact, I'm not "using" cl-opengl at all at the moment. What I was talking about was, right after installation of cl-opengl running some examples in the source tree to see if it works. So I guess to answer the question properly, I'm using GLUT then.
So I tried two examples: glut-teapot and gears. Both of these suffer from the same problem with gl:clear (i.e. gl:get-errror returns invalid-value when depth-buffer is set). So, here are some details.
For the teapot, what happens is that the window shows the (in)famous teapot, but the background is a copy of the place on my desktop where the window was instantiated, i.e. not black.
For gears, I can't see the gears rotating, because the "teeth" of the gears smear out and cause the gears to have a more wheel-like appearance.
I also had a quick look at render-to-texture, which is... well, weird...
On #lisp, it was suggested that this means that gl:clear doesn't do it's job properly, and that I should see what cl:get-error returns. So I altered the code for the teapot and put a cl:get-error before and after the (cl:clear :color-buffer :depth-buffer), and the error is printed on screen. Result is that before the call to clear, get-error returns zero, but after, it returns invalid-value. So I proceeded to find out which of the two flags is bogus.
Removing :color-buffer and keeping :depth-buffer from the call to cl:clear still returned invalid-value, while removing :depth-buffer and keeping :color-buffer returned zero. So both the original and former calls to cl:clear failed, while the latter succeeded.
Of course, the result is still wrong, because the depth buffer isn't cleared. But at least I know that using (cl:clear :depth-buffer) fails.
I've verified in my GL.h file that the constant for the depth buffer bit matches the one in constants.lisp, so there's no problem there. Also, using lsof, I've verified that when I (require 'cl-opengl) in SBCL, that SBCL indeed uses the correct libGL.so.
Now, when I compile and run glxgears, the C program, it works fine.
I'm not sure where else I can look for more info. I don't think my X logs say anything, and I don't see any error messages when running the (gears) example, nor when running the (glut-teapot) example.
It is highly probable that you won't be able to reproduce this problem, or else, you would have noticed immediately, since it is the examples already that don't work, right? :) If you need more information or there are things you want me to try to debug what's going on, then I'm willing to help. At the moment, though, since the examples don't work, I'm not using cl-opengl, while I really want to.
Thanks, Sumant
On Tue, Jun 02, 2009 at 02:07:27PM +0100, Luís Oliveira wrote:
On Tue, Jun 2, 2009 at 5:24 AM, Sumant Oemrawsingh soemraws@xs4all.nl wrote:
After successfully installing cl-opengl, I ran into the following problem when trying to run the examples. I found that the demo's ran without explicit errors, but the output didn't look right. Basically, gl:clear wasn't doing its job.
Can you give us a specific example so that we can try and reproduce the problem?
-- Luís Oliveira http://student.dei.uc.pt/~lmoliv/