Oliver Markovic entrox@entrox.org writes:
Neat! This would cut out a lot of the annoying (float ...) throughout the wrappers. It seems to me like a lot of things that I used to do by hand are made obsolete by CFFI advancements. Maybe we won't need any wrappers at all soon? :)
The less wrappers the better. :-)
BTW, can I request a FOREIGN-ENUM-P?
Sure. That sounds useful. I'll try to come up with some sort of more generic foreign-typep first and if I fail, I'll add foreign-enum-p.
The reason for keeping the wrapper functions separate from the FFI definitions is that I thought it might be possible to also support FFI-less GLX without having to change any of the wrappers. Suppose there are two backends, one for the C-based library and one for GLX through CLX, then a call to %glFoo could be either a foreign call or some Lisp function which sends out the appropriate GLX request to the server, depending on which backend is loaded.
What about something like this:
(defmacro defglfun (name rettype &body args) `(defcfun ,name ,rettype ,@args))
Then a CLX backend would implement this macro (which would probably be slightly more complicated, I'm sure). I have no idea if this makes sense as I've never touched CLX.
Again, if it does make sense, I volunteer to do the gruntwork. :-)