]> git.jsancho.org Git - gacela.git/commitdiff
Now yes, we have views.
authorJavier Sancho <jsf@jsancho.org>
Tue, 26 Jun 2012 19:42:57 +0000 (21:42 +0200)
committerJavier Sancho <jsf@jsancho.org>
Tue, 26 Jun 2012 19:42:57 +0000 (21:42 +0200)
src/gacela.scm
src/video.scm
src/views.scm [new file with mode: 0644]

index 6719f82aa471e93502aa21bf6af3032cf6f6859f..8fa9f52faac1994ee591856dcb6455bd888f22fd 100644 (file)
@@ -50,8 +50,8 @@
                   define-mob
                   lambda-mob
                   define-checking-mobs)
-  #:re-export ;(translate
-             ( get-frame-time
+  #:re-export (translate
+              get-frame-time
               3d-mode?))
 
 
                  (lambda (key . args) #f))
         (draw-views (cdr views)))))
 
-(define-macro (define-view name content)
-  `(begin
-     (hash-set! active-views ',name (lambda () (glmatrix-block ,content)))
-     ',name))
+;; (define-macro (define-view name content)
+;;   `(begin
+;;      (hash-set! active-views ',name (lambda () (glmatrix-block ,content)))
+;;      ',name))
 
 
 ;;; Views Primitives
 
-(define-macro (translate x y view-or-z . view)
-  (let* ((z (if (null? view) 0 view-or-z))
-        (view (if (null? view) view-or-z (car view))))
-    `(begin
-       (gltranslate ,x ,y ,z)
-       ,view)))
+;(define-macro (translate x y view-or-z . view)
+;  (let* ((z (if (null? view) 0 view-or-z))
+;       (view (if (null? view) view-or-z (car view))))
+;    `(begin
+;       (gltranslate ,x ,y ,z)
+;       ,view)))
 
 
 (module-map (lambda (sym var)
index d3fbdfb99743e062e215da74e126555baccd3529..e58fab9ce906890d016fdc1b444c2cba5114e82b 100644 (file)
@@ -58,8 +58,8 @@
            draw-rectangle
            draw-square
            draw-cube
-           gltranslate
-           glrotate
+           translate
+           rotate
            to-origin
            add-light
            set-camera
      (glNormal3f -1 0 0)
      (draw-quad (list -size -size size) (list -size -size -size) (list -size size -size) (list -size size size) #:texture (or texture-6 texture) #:color (or color-6 color)))))
 
-(define* (gltranslate x y #:optional (z 0))
+(define* (translate x y #:optional (z 0))
   (glTranslatef x y z))
 
-(define* (glrotate #:rest rot)
+(define* (rotate #:rest rot)
   (cond ((3d-mode?)
         (apply 3d-rotate rot))
        (else
diff --git a/src/views.scm b/src/views.scm
new file mode 100644 (file)
index 0000000..4f35b56
--- /dev/null
@@ -0,0 +1,35 @@
+;;; Gacela, a GNU Guile extension for fast games development
+;;; Copyright (C) 2009 by Javier Sancho Fernandez <jsf at jsancho dot org>
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+(define-module (gacela draw)
+  #:use-module (gacela gacela)
+  #:use-module ((gacela video) #:renamer (symbol-prefix-proc 'video:))
+  #:use-module ((gacela gl) #:select (glPushMatrix glPopMatrix))
+  #:use-module (ice-9 optargs))
+
+(define-macro (define-view name content)
+  `(begin
+     (hash-set! active-views ',name (lambda () (video:glmatrix-block ,content)))
+     ',name))
+
+(define (square . params)
+  (define-view tmp (apply video:draw-square params)))
+
+(module-map (lambda (sym var)
+             (if (not (eq? sym '%module-public-interface))
+                 (module-export! (current-module) (list sym))))
+           (current-module))