]> git.jsancho.org Git - gacela.git/commitdiff
Defining basic meshes.
authorJavier Sancho <jsf@jsancho.org>
Sun, 1 Jul 2012 07:52:56 +0000 (09:52 +0200)
committerJavier Sancho <jsf@jsancho.org>
Sun, 1 Jul 2012 07:52:56 +0000 (09:52 +0200)
src/views.scm

index 4f35b568b0257bb94008f2614dc48e82b12f5148..5fcf8549f22218bdd364ed5e2eb11bcc9cd48dfa 100644 (file)
@@ -15,7 +15,7 @@
 ;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
-(define-module (gacela draw)
+(define-module (gacela views)
   #:use-module (gacela gacela)
   #:use-module ((gacela video) #:renamer (symbol-prefix-proc 'video:))
   #:use-module ((gacela gl) #:select (glPushMatrix glPopMatrix))
      (hash-set! active-views ',name (lambda () (video:glmatrix-block ,content)))
      ',name))
 
-(define (square . params)
-  (define-view tmp (apply video:draw-square params)))
+(define-macro (lambda-mesh . content)
+  `(lambda () ,content))
+
+(define-macro (define-basic-meshes . symbols)
+  (cond ((null? symbols)
+        `#t)
+       (else
+        `(begin
+           (define (,(caar symbols) . params) (lambda-visible (video:glmatrix-block (apply ,(cadar symbols) params))))
+           (define-basic-meshes ,@(cdr symbols))))))
+
+(define-basic-meshes
+  (rectangle video:draw-rectangle)
+  (square video:draw-square))
 
 (module-map (lambda (sym var)
              (if (not (eq? sym '%module-public-interface))