Hello,
To begin, as it's my first post, I'd like to thank all the developers
who started and maintain this project. As a hobbiest beginner, this
package allows me to play with the two things that I'm interested in
most these days, Lisp and OpenGL.
With that said, I was working my way through OpenGL Distilled by Paul
Martz, I noticed that section 2.8 on Vertex Arrays of the OpenGL spec
was missing. I wasn't quite sure if this was on purpose or not, in
favor of a more "Lispy" way but since I couldn't find any equivalent
functionality I decided it was a big TODO. So I've after researching
and playing with the system, I believe I've made a mostly function
patch to add Vertex Arrays to cl-opengl. Of course this has caveats.
The biggest caveat is I am still new to OpenGL and Lisp however my
patch does produce nearly accurate results of rb-varray in the
cl-glut-examples and I have hope that many of the other Vertex Array
functions that aren't tested in the rb-varray example work as well.
The "nearly accurate" results is why I've decided to mail in my patch.
For the there is something odd about how OpenGL is getting one vertex
and I can't for the life of me pinpoint it (hopefully due to my
green-thumbedness). I /think/ it's either with CFFI itself or the
'with-opengl-array' / 'with-opengl-sequence' macros or maybe even my
ATI mobitlity chip :( I'd be interested to hear if rb-varray works
for anyone else. Sorry for the long explanation. Here's a short change
summary followed by the patch attachment generated by 'darcs whatsnew'
gl/package.lisp, funcs.lisp, opengl.lisp
added the code for Vertex Arrays through CFFI and the export
symbols necessary
gl/util.lisp
probably my more "dangerous" code as I modified slightly
with-opengl-sequence to get rid of the eval quick hack and modified
with-opengl-array to look like with-opengl-sequence with out the extra
gynsym for array. I hope I did it right and didn't shoot myself in the
foot...
examples/rb-varray.lisp
adjusted until if gave me output using rb-cube.lisp as a reference
Thanks again and I hope this code is useful.
Charlie Mac