From damyanp at gmail.com Sun Dec 17 22:54:52 2006 From: damyanp at gmail.com (Damyan Pepper) Date: Sun, 17 Dec 2006 22:54:52 +0000 Subject: [cl-opengl-devel] Re: cl-opengl on Windows References: <176868680610222003j6bc8aa69rdc7e7a1988272f82@mail.gmail.com> <391f79580610301119v23793fd6g45b2956fa13ac9b4@mail.gmail.com> Message-ID: "Lu?s Oliveira" writes: > On 10/23/06, Gilbert Wong wrote: >> Hello, sorry if this isnt the right place for these issues since i'm >> fairly a novice to lisp. I am currently playing around with sbcl 9.17 >> on Windows and am having problems compiling cl-opengl. It seems that >> it has trouble finding all the gl functions, specifically anything >> above gl 1.1. Has this been adressed? Hi there - I'm in a similar boat to Gilbert, and was wondering what the current state is with cl-opengl under win32. Does it currently work for anyone on win32? My opengl32.dll doesn't have, for example, an entry point for glActiveTexture. Searching on the net suggests that the way to get hold of this function under windows is to do something like (in C): glActiveTexture = (PFNGLCLIENTACTIVETEXTUREARBPROC) wglGetProcAddress("glActiveTextureARB"); >> Is there an easy way to utilize >> something like wglGetProc to address this problem? > > ISTR this was discussed in this mailing list before. I don't remember > what the conclusions were but you can probably find something in the > archives. I've had a look through the archives but couldn't find anything relevant. I found the messages about getting hold of freeglut.dll (which suggests to me that people are successfully running cl-opengl under windows), but didn't see anything else about getting hold of the extensions. Is there something I need to install, or should I start trying to get these functions through wglGetProcAddress? Regards, Damyan. From charliemac+cl-opengl at gmail.com Mon Dec 18 02:39:10 2006 From: charliemac+cl-opengl at gmail.com (Charlie McMackin) Date: Mon, 18 Dec 2006 11:39:10 +0900 Subject: [cl-opengl-devel] Vertex Arrays Message-ID: <6e831e4e0612171839g403ce01fv9e8c300ff32f1b09@mail.gmail.com> 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 -------------- next part -------------- A non-text attachment was scrubbed... Name: cl-opengl-changes.patch Type: text/x-patch Size: 11090 bytes Desc: not available URL: From 00003b at gmail.com Mon Dec 18 03:46:49 2006 From: 00003b at gmail.com (Bart Botta) Date: Sun, 17 Dec 2006 21:46:49 -0600 Subject: [cl-opengl-devel] Re: cl-opengl on Windows In-Reply-To: References: <176868680610222003j6bc8aa69rdc7e7a1988272f82@mail.gmail.com> <391f79580610301119v23793fd6g45b2956fa13ac9b4@mail.gmail.com> Message-ID: <77cb99c00612171946o61cb624eh30e82d5db67a7deb@mail.gmail.com> On 12/17/06, Damyan Pepper wrote: > > I'm in a similar boat to Gilbert, and was wondering what the current > state is with cl-opengl under win32. Does it currently work for > anyone on win32? > > My opengl32.dll doesn't have, for example, an entry point for > glActiveTexture. Searching on the net suggests that the way to get > hold of this function under windows is to do something like (in C): > > glActiveTexture = (PFNGLCLIENTACTIVETEXTUREARBPROC) > wglGetProcAddress("glActiveTextureARB"); > You could try my patched version of cl-opengl at http://www.3bb.cc/tmp/cl-opengl-3b.tar.bz2 It should work on Win32, and includes OpenGL >=1.2 functions and most of the GL extensions that are more than a month or 2 old. The examples will require GLUT, but the extension code should work with wglGetProcAddress, or SDL's version, or whatever. Just need to add the appropriate defcfun and (setf cl-opengl-bindings::*gl-get-proc-address* #'wglGetProcAddress) at some point before you try to call any GL>=1.2 or extension functions. I've run some of the examples on win32 SBCL, but not really stressed it much. I assume it won't work on Corman, since it needs foreign-funcall, but should work on other CFFI supported lisps. -- Bart From damyanp at gmail.com Mon Dec 18 22:28:28 2006 From: damyanp at gmail.com (Damyan Pepper) Date: Mon, 18 Dec 2006 22:28:28 +0000 Subject: [cl-opengl-devel] Re: cl-opengl on Windows References: <176868680610222003j6bc8aa69rdc7e7a1988272f82@mail.gmail.com> <391f79580610301119v23793fd6g45b2956fa13ac9b4@mail.gmail.com> <77cb99c00612171946o61cb624eh30e82d5db67a7deb@mail.gmail.com> Message-ID: "Bart Botta" <00003b at gmail.com> writes: > You could try my patched version of cl-opengl at > http://www.3bb.cc/tmp/cl-opengl-3b.tar.bz2 > I've run some of the examples on win32 SBCL, but not really stressed > it much. I assume it won't work on Corman, since it needs > foreign-funcall, but should work on other CFFI supported lisps. Hi - thanks for this, it gets me a lot further. (I'm running SBCL 1.0 on Win32) Are there any plans to merge your patches into the main distribution? I had to #-win32 gluProject and gluUnProject - I think because of the (:pointer gl:double). Just in case anyone's interested, here's how the examples run on my machine: rb-hello: ok rb-double: runs, but crashes when I click in the window (win32 exception of some kind) rb-lines: ok rb-polys: ok rb-cube: ok rb-model: ok rb-clip: ok rb-stroke: ok rb-list: ok rb-stroke: ok rb-smooth: ok rb-movelight: runs, but crashes on clicks (as for rb-double) gears: displays, but immediately crashes For all the ones that are ok, the keyboard input doesn't seem to work. I guess that this is because glut:keyboard is getting called with the key codes as integers rather than as characters - so it gets 27 rather than #\Esc for example. I'll look into this - I want to make sure I'm running the latest CFFI and see if ascii-to-char works in other circumstances. Regards, Damyan. From 00003b at gmail.com Mon Dec 18 23:17:37 2006 From: 00003b at gmail.com (Bart Botta) Date: Mon, 18 Dec 2006 17:17:37 -0600 Subject: [cl-opengl-devel] Re: cl-opengl on Windows In-Reply-To: References: <176868680610222003j6bc8aa69rdc7e7a1988272f82@mail.gmail.com> <391f79580610301119v23793fd6g45b2956fa13ac9b4@mail.gmail.com> <77cb99c00612171946o61cb624eh30e82d5db67a7deb@mail.gmail.com> Message-ID: <77cb99c00612181517k6fba2d8xb777c049890e4b2c@mail.gmail.com> On 12/18/06, Damyan Pepper wrote: > > Hi - thanks for this, it gets me a lot further. (I'm running SBCL 1.0 > on Win32) Are there any plans to merge your patches into the main > distribution? > Yeah, I'm hoping to get it added at some point, but have been distracted by other projects recently so haven't finished it up yet. > I had to #-win32 gluProject and gluUnProject - I think because of the > (:pointer gl:double). > That sounds like you might be using old cffi, the (:pointer gl:double) bit requires cffi 0.9.2 > rb-double: runs, but crashes when I click in the window (win32 exception of some kind) > rb-movelight: runs, but crashes on clicks (as for rb-double) > gears: displays, but immediately crashes > You might try building SBCL from CVS, there were some bugs with callbacks on win32 fixed since 1.0 that sounded like they might be hit by the glut code. > For all the ones that are ok, the keyboard input doesn't seem to work. > I guess that this is because glut:keyboard is getting called with the > key codes as integers rather than as characters - so it gets 27 rather > than #\Esc for example. I'll look into this - I want to make sure I'm > running the latest CFFI and see if ascii-to-char works in other > circumstances. > I've seen that also (with Linux SBCL), I assume they worked for whoever wrote them, so not sure if something has changed since then, or if it is due to different versions of glut, or lisp implementation or what... -- Bart From luismbo at gmail.com Mon Dec 25 19:36:19 2006 From: luismbo at gmail.com (=?ISO-8859-1?Q?Lu=EDs_Oliveira?=) Date: Mon, 25 Dec 2006 19:36:19 +0000 Subject: [cl-opengl-devel] Vertex Arrays In-Reply-To: <6e831e4e0612171839g403ce01fv9e8c300ff32f1b09@mail.gmail.com> References: <6e831e4e0612171839g403ce01fv9e8c300ff32f1b09@mail.gmail.com> Message-ID: <391f79580612251136n370744edi691aa246a248dc78@mail.gmail.com> Hello, On 12/18/06, Charlie McMackin wrote: > Thanks again and I hope this code is useful. First off, sorry for the late reply. I've looked at your patch but darcs doesn't like it. I'm guessing you manually edited it. Can you send us the unaltered output of "darcs send -o"? Thanks! -- Lu?s Oliveira http://student.dei.uc.pt/~lmoliv/ From charliemac+cl-opengl at gmail.com Tue Dec 26 01:46:29 2006 From: charliemac+cl-opengl at gmail.com (Charlie McMackin) Date: Tue, 26 Dec 2006 10:46:29 +0900 Subject: [cl-opengl-devel] Vertex Arrays In-Reply-To: <391f79580612251136n370744edi691aa246a248dc78@mail.gmail.com> References: <6e831e4e0612171839g403ce01fv9e8c300ff32f1b09@mail.gmail.com> <391f79580612251136n370744edi691aa246a248dc78@mail.gmail.com> Message-ID: <6e831e4e0612251746k19724135ne9b840821e90a16c@mail.gmail.com> Hello, Here is a patch done with your requested method. In addition, should Bart's changes be merged, I also have a patch working for that (not attached with this email). Again, I'm not strong on macros yet so my changes gl/util.lisp's with-opengl-sequence need extra scrutiny. Vertex array functions need to be able to send variable type information but the current with-opengl-sequence is coded assuming constant types. If you wonder why I removed the flet section of the macro, I kept getting errors that I concluded were due to the various lexical scopes happening with flet, once-only, and gensyms I'd like to hear what kind of results it produces for others as I only have a ati 9600 mobility to test on. Charlie Mac -------------- next part -------------- New patches: [vertex array addition charliemac+cl-opengl at gmail.com**20061226010622 Added mostly working functionality for vertex arrays. "with-opengl-sequence" macro modified (hopefully correctly) in gl/util.lisp, possible danger of code breakage. ] { hunk ./examples/examples.lisp 11 - rb-double rb-hello #|rb-varray|# rb-lines rb-polys rb-cube rb-model + rb-double rb-hello rb-varray rb-lines rb-polys rb-cube rb-model hunk ./examples/redbook/varray.lisp 14 - (deref-method :accessor deref-method :initform 'draw-array))) + (deref-method :accessor deref-method :initform 'draw-array)) + (:default-initargs :width 350 :height 350 :title "varray.lisp" + :mode '(:single :rgb))) hunk ./examples/redbook/varray.lisp 19 - ;; XXX TODO -#|| - static GLint vertices[] = {25, 25, - 100, 325, - 175, 25, - 175, 325, - 250, 25, - 325, 325}; - static GLfloat colors[] = {1.0, 0.2, 0.2, - 0.2, 0.2, 1.0, - 0.8, 1.0, 0.2, - 0.75, 0.75, 0.75, - 0.35, 0.35, 0.35, - 0.5, 0.5, 0.5}; + (let ((vertices '(25 25 + 100 325 + 175 25 + 175 325 + 250 25 + 325 325)) + (colors '(1.0 0.2 0.2 + 0.2 0.2 1.0 + 0.8 1.0 0.2 + 0.75 0.75 0.75 + 0.35 0.35 0.35 + 0.5 0.5 0.5))) hunk ./examples/redbook/varray.lisp 32 - glEnableClientState (GL_VERTEX_ARRAY); - glEnableClientState (GL_COLOR_ARRAY); - - glVertexPointer (2, GL_INT, 0, vertices); - glColorPointer (3, GL_FLOAT, 0, colors); -||# ) + (gl:enable-client-state :vertex-array) + (gl:enable-client-state :color-array) + + (gl:vertex-pointer 2 :int 0 vertices) + (gl:color-pointer 3 :float 0 colors))) + hunk ./examples/redbook/varray.lisp 39 -(defun setup-interlave () -#|| static GLfloat intertwined[] = - {1.0, 0.2, 1.0, 100.0, 100.0, 0.0, - 1.0, 0.2, 0.2, 0.0, 200.0, 0.0, - 1.0, 1.0, 0.2, 100.0, 300.0, 0.0, - 0.2, 1.0, 0.2, 200.0, 300.0, 0.0, - 0.2, 1.0, 1.0, 300.0, 200.0, 0.0, - 0.2, 0.2, 1.0, 200.0, 100.0, 0.0}; - - glInterleavedArrays (GL_C3F_V3F, 0, intertwined); - ||#) +(defun setup-interleave () + (let ((intertwined '(1.0 0.2 1.0 100.0 100.0 0.0 + 1.0 0.2 0.2 0.0 200.0 0.0 + 1.0 1.0 0.2 100.0 300.0 0.0 + 0.2 1.0 0.2 200.0 300.0 0.0 + 0.2 1.0 1.0 300.0 200.0 0.0 + 0.2 0.2 1.0 200.0 100.0 0.0))) + + (gl:interleaved-arrays :c3f-v3f 0 intertwined))) hunk ./examples/redbook/varray.lisp 49 -(defmethod initialize-instance :after ((w varray-window) &key) +(defmethod glut:display-window :before ((w varray-window)) hunk ./examples/redbook/varray.lisp 56 - (ecase deref-method + (ecase (deref-method w) hunk ./examples/redbook/varray.lisp 79 - (case (setup-method varray-window) + (case (setup-method w) hunk ./examples/redbook/varray.lisp 81 - (setf (setup-method varray-window) 'interleaved) + (setf (setup-method w) 'interleaved) hunk ./examples/redbook/varray.lisp 83 - (interlaved - (setf (setup-method varray-window) 'pointer) + (interleaved + (setf (setup-method w) 'pointer) hunk ./examples/redbook/varray.lisp 89 - (setf (deref-method varray-window) - (case (deref-method varray-window) + (setf (deref-method w) + (ecase (deref-method w) hunk ./examples/redbook/varray.lisp 98 - (case key + (case (code-char key) hunk ./examples/redbook/varray.lisp 104 - - (glut:init-display-mode :single :rgb) - (make-instance 'varray-window - :width 350 :height 350 - :pos-x 100 :pos-y 100 - :title "varray.lisp" - :events '(:display :reshape :mouse :keyboard)) - (glut:main-loop)) + (glut:display-window (make-instance 'varray-window))) + + + + + + + hunk ./gl/funcs.lisp 55 +(defglfun ("glArrayElement" %glArrayElement) :void + (i int)) + hunk ./gl/funcs.lisp 170 +(defglfun ("glClientActiveTexture" %glClientActiveTexture) :void + (texture enum)) + hunk ./gl/funcs.lisp 198 +(defglfun ("glColorPointer" %glColorPointer) :void + (size int) + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 329 +(defglfun ("glDisableClientState" %glDisableClientState) :void + (array enum)) + +(defglfun ("glDisableVertexAttribArray" %glDisableVertexAttribArray) :void + (index uint)) + +(defglfun ("glDrawArrays" %glDrawArrays) :void + (mode enum) + (first int) + (count sizei)) + hunk ./gl/funcs.lisp 347 +(defglfun ("glDrawElements" %glDrawElements) :void + (mode enum) + (count sizei) + (type enum) + (indices :pointer)) + hunk ./gl/funcs.lisp 358 +(defglfun ("glEdgeFlagPointer" %glEdgeFlagPointer) :void + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 365 +(defglfun ("glEnableClientState" %glEnableClientState) :void + (array enum)) + +(defglfun ("glEnableVertexAttribArray" %glEnableVertexAttribArray) :void + (index uint)) + hunk ./gl/funcs.lisp 418 +(defglfun ("glFogCoordPointer" %glFogCoordPointer) :void + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 580 +(defglfun ("glIndexPointer" %glIndexPointer) :void + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 587 +(defglfun ("glInterleavedArrays" %glInterleavedArrays) :void + (frmat enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 738 +(defglfun ("glNormalPointer" %glNormalPointer) :void + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 898 +(defglfun ("glSecondaryColorPointer" %glSecondaryColorPointer) :void + (size int) + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 966 +(defglfun ("glTexCoordPointer" %glTexCoordPointer) :void + (size int) + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/funcs.lisp 1190 +(defglfun ("glVertexAttribPointer" %glVertexAttribPointer) :void + (index uint) + (size int) + (type enum) + (normalized boolean) + (stride sizei) + (pointer :pointer)) + +(defglfun ("glVertexPointer" %glVertexPointer) :void + (size int) + (type enum) + (stride sizei) + (pointer :pointer)) + hunk ./gl/opengl.lisp 125 +;;; +;;; 2.8 Vertex Arrays +;;; + +(defun vertex-pointer (size type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glVertexPointer size type stride array))) + +(defun normal-pointer (type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glNormalPointer type stride array))) + +(defun color-pointer (size type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glColorPointer size type stride array))) + +(defun secondary-color-pointer (size type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glSecondaryColorPointer size type stride array))) + +(defun index-pointer (type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glIndexPointer type stride array))) + +(defun edge-flag-pointer (stride lisp-array) + (with-opengl-sequence (array 'boolean lisp-array) + (%glEdgeFlagPointer stride array))) + +(defun fog-coord-pointer (type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glFogCoordPointer type stride array))) + +(defun tex-coord-pointer (size type stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glTexCoordPointer size type stride array))) + +(defun vertex-attrib-pointer (index size type normalized stride lisp-array) + (with-opengl-sequence (array type lisp-array) + (%glVertexAttribPointer index size type normalized stride array))) + +(declaim (inline enable-client-state)) +(defun enable-client-state (state) + (%glEnableClientState state)) + +(declaim (inline disable-client-state)) +(defun disable-client-state (state) + (%glDisableClientState state)) + +(declaim (inline client-active-texture)) +(defun client-active-texture (enum) + (%glClientActiveTexture enum)) + +(declaim (inline array-element)) +(defun array-element (i) + (%glArrayElement i)) + +(declaim (inline draw-arrays)) +(defun draw-arrays (mode first count) + (%glDrawArrays mode first count)) + +;; (defun multi-draw-arrays ()) + +(defun draw-elements (mode count type lisp-indices) + (with-opengl-sequence (indices type lisp-indices) + (%glDrawElements mode count type indices))) + +;; (defun draw-range-elements ()) + +(defun interleaved-arrays (format stride lisp-array) + ;;array type needs more logic I think + ;;float is quick hack to get working with redbook varray example + (with-opengl-sequence (array 'float lisp-array) + (%glInterleavedArrays format stride array))) + hunk ./gl/package.lisp 65 + ;; 2.8 Vertex Arrays + #:vertex-pointer + #:normal-pointer + #:color-pointer + #:secondary-color-pointer + #:index-pointer + #:edge-flag-pointer + #:fog-coord-pointer + #:tex-coord-pointer + #:vertex-attrib-pointer + #:enable-client-state + #:disable-client-state + #:client-active-texture + #:array-element + #:draw-arrays +;; #:multi-draw-arrays + #:draw-elements +;; #:multi-draw-elements +;; #:draw-range-elements + #:interleaved-arrays hunk ./gl/util.lisp 111 + +(defun convert-seq (type lisp-sequence) + (case type + ((float :float) (mapcar #'float lisp-sequence)) + ((double :double) (mapcar #'(lambda (x) (float x 1.0d0)) + lisp-sequence)) + (t lisp-sequence))) + hunk ./gl/util.lisp 121 - (flet ((converting (form) ; um, assuming type is constant - (case (eval type) ; silly hack.. FIXME - (float `(float ,form)) - (double `(float ,form 1.0d0)) - (t form)))) - (let ((count (gensym "COUNT"))) - (once-only (type lisp-sequence) - `(let ((,count (length ,lisp-sequence))) - (with-foreign-object (,var ,type ,count) - (loop for i below ,count - do (setf (mem-aref ,var ,type i) - ,(converting `(elt ,lisp-sequence i)))) - , at body)))))) + (let ((count (gensym "COUNT")) + (typed-seq (convert-seq type lisp-sequence))) + (once-only (type typed-seq) + `(let ((,count (length ,typed-seq))) + (with-foreign-object (,var ,type ,count) + (loop for i below ,count + do (setf (mem-aref ,var ,type i) + (elt ,typed-seq i))) + , at body))))) } Context: [Misc patch Luis Oliveira **20061117024105 Patch courtesy of Bart Botta. ] [Applied patch from Bart Botta Oliver Markovic **20061112111533] [Pushed wrong version of render-to-texture.lisp; fixed Oliver Markovic **20061111152828] [Add render-to-texture example Oliver Markovic **20061111151241 - Add new example in examples/misc/ illustrating the use of FBOs ] [Add support for buffer objects Oliver Markovic **20061111151103 - Add vertex and pixel buffer objects - Add support for the EXT_framebuffer_object extension ] [Fix downcasing issues with enum generation. James Bielman **20060830200239] [Implement GLU projection functions. James Bielman **20060828054332 - New exported functions: GLU:PROJECT, GLU:UN-PROJECT, GLU:UN-PROJECT4. - New utility macro: WITH-OPENGL-ARRAYS for binding multiple arrays. ] [Implement numeric OpenGL state querying functions. James Bielman **20060828054131 - New exported functions: GET-BOOLEAN, GET-DOUBLE, GET-FLOAT, GET-INTEGER, and GET-ENUM. These functions are able to automatically return the correct number of return values when the query enum is in the *QUERY-ENUM-SIZES* table. ] [Replace separate enum types with generated GL:ENUM. James Bielman **20060828052308] [Add a script to generate OpenGL constants from the specifiction. James Bielman **20060828051427] [Add OpenGL specification data files for enum values. James Bielman **20060828051348] [Define foreign functions inline via DEFGLFUN helper macro. James Bielman **20060828045747] [Move GL function DEFCFUNs into funcs.lisp. James Bielman **20060828045514] [More 64-bit-cleanliness fixes, use ints instead of longs. James Bielman **20060828044816] [Fix bug in WITH-OPENGL-ARRAY when VAR and LISP-ARRAY are the same. James Bielman **20060823210517] [Use :INT as the base type for GL:INT and GL:SIZEI. James Bielman **20060823171453 - Using :LONG broke on 64-bit Linux. According to the GL header on my Linux system, GLint and GLsizei are of C type 'int'. ] [Minor fix to glut/interface.lisp Luis Oliveira **20060703224124] [CL-GLUT update Luis Oliveira **20060624235928 - Fix foreign-symbol-pointer usage in glut/fonts.lisp. - Move enums next to the DEFCFUNs where they're used. - Rework the CL-GLUT CLOS interface. - Reorganize examples and rewrite them using the updated CLOS interface. ] [s/windows/cffi-features:windows Luis Oliveira **20060425212810] [Convert array contents to floats in MAP1 and MAP2. James Bielman **20060412015458] [Add evaluator constants to the ENABLE-CAP enum. James Bielman **20060412015045] [New example: glut-teapot.lisp Luis Oliveira **20060326211537 Also, fixed a typo in the README and added a README for the examples. ] [GLUT: add missing event and fix typo Luis Oliveira **20060221054305 - Missing event: passive-motion. - fullscreen -> full-screen - move the (setf title) magic to a :before method. ] [Minor fixes to the examples Luis Oliveira **20060221054151 - add ignore declarations to unused arguments. - use MOD! ] [Oops. Forgot to darcs add examples/mesademos/package.lisp Luis Oliveira **20060219211853] [More examples Luis Oliveira **20060218054241 - New examples: rb{6,7,8,9,10,11,12,13}. - Use with-new-list in mesademos/gears.lisp. - Add copyright notices to examples. - Fix example 4 which was drawing *halftone* twice. ] [with-new-list, with-primitive and call-lists Luis Oliveira **20060218051830] [GLUT: use gl:ensure-double Luis Oliveira **20060217231013] [Small change to with-opengl-sequence Luis Oliveira **20060217224915 - Make it convert the sequence's elements to float or double when the type is gl:float or gl:double respectively. Breaks when type isn't constant, oops. ] [Tiny update to GLU Luis Oliveira **20060217222227 - Mostly move files around. (remind not to create stub files again, ugh) - Added some new functions. ] [New types: gl:ensure-double and gl:ensure-float Luis Oliveira **20060217221729 - Define and export ensure-double and ensure-float. (these need a recent CFFI) - Also export some types that'll be needed for GLU. Maybe a gl-types package would be a good idea? ] [Oops. Forgot darcs add. Luis Oliveira **20060207034827] [New examples Luis Oliveira **20060207032245 - New 5 examples from the redbook. - 2 GLU functions needed for the examples. - Added gl:polygon-stipple needed for one of the examples. - Fixed silly bugs in cl-glut's ascii-to-char type and the base-window initialize-instance. - Moved window's title initform to a special. ] [Preliminary CLOS interface to GLUT Luis Oliveira **20060206182638 - Removed a german 'ss' from rasterization.lisp which was upsetting SBCL. - New macro WITH-PUSHED-MATRIX. WITH-MATRIX might be a better name? - New experimental CLOS-based interface to GLUT. - New example using the new CLOS interface. Moved old gears exmample to gears-raw.lisp. ] [Optimizations (needs recent CFFI again) Luis Oliveira **20060203014020 - Add declarations in gears.lisp - Define the gl:* types to have no translation ] [Use internal-time-units-per-second Luis Oliveira **20060202200413] [Add fps counter to examples/mesademos/gears.lisp Luis Oliveira **20060202195354] [Texturing functions added. Oliver Markovic **20060202185907 - Added preliminary support for glTexImage and glTexSubImage. I'm still not sure on how to handle the data. - Added glCopyTexImage and glCopyTexSubImage - Added glAreTexturesResident and glPrioritizeTextures along with TEXTURE-RESIDENT-P and PRIORITIZE-TEXTURE, which are hopefully less awkward to use than the direct translations. - Added glTexEnv. ] [Oops. Missing glut/main.lisp file. Luis Oliveira **20060202190632] [GLUT update, less straw. Luis Oliveira **20060202124342 (requires recent cffi patches fixing defcenum issue and implementing defbitfield) - add missing depends-on to funcs in cl-opengl.asd - complete glut bindings. next step: high level interface. ] [Add glutSetOption. Alexey Dvoychenkov **20060202031904] [Big patch, lots of straw again. Luis Oliveira **20060201164339 - GLU: added asd file and stub .lisp files. - Examples: - added cl-glut-examples.asd - new example: gears.lisp - GLUT: added asd file and implemented a few routines. (mostly those needed by the gears.lisp example) - Add my name to HEADER too. - 3 separate manuals is probably overkill? Use only one for now. - GL: - fixed enums, these should canonicalize to GLenum, not int. - renamed gl types from GLfoo to gl:foo (and exported them) - fixed erroneus check-type. - look for libGL.so.N if libGL.so isn't found. - removed some tabs from the files. - added missing space between ":constant-attenuation" and "linear-attenuation". - added missing (declare (ignore ..)) to avoid warnings. - fixed a small bug/typo where a foreign array was being accessed as if it were Lisp array. - change ;;;-comments to ;;-comments in package.lisp in order to indent well. ] [Add documentation structure. Luis Oliveira **20060201013908 Just straw, no content. Taken from cffi mostly. ] [Minor changes Luis Oliveira **20060131190956 - added HEADER file. - changed library.lisp to use BSD license. - removed tabs from state.lisp ] [Added examples directory. Oliver Markovic **20060131120521] [Initial revision. Oliver Markovic **20060131115438] Patch bundle hash: 841fe3384f34b042a1df602d779c59cf4e8f3f71