]> git.jsancho.org Git - gacela.git/blobdiff - src/video.scm
Using guile-figl
[gacela.git] / src / video.scm
index 5de2adedabe02f4d713e25e95d18f41822063938..06e263d913c9b29d2b95054cd2183c86c8fde6cf 100644 (file)
@@ -17,7 +17,9 @@
 
 (define-module (gacela video)
   #:use-module (gacela sdl)
-  #:use-module (gacela gl)
+;  #:use-module (gacela gl)
+  #:use-module (figl gl)
+  #:use-module (figl glu)
   #:use-module (gacela ftgl)
   #:use-module (gacela math)
   #:use-module (gacela utils)
@@ -67,9 +69,7 @@
            load-font
            load-font-without-texture
            render-text)
-  #:re-export (glPushMatrix
-              glPopMatrix)
-  #:export-syntax (glmatrix-block))
+  #:re-export (with-gl-push-matrix))
 
 
 
         (SDL_Quit))))
 
 (define (clear-screen)
-  (glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT)))
+  (gl-clear (clear-buffer-mask color-buffer depth-buffer)))
 
 (define (flip-screen)
   (SDL_GL_SwapBuffers))
 
 (define (set-2d-mode)
   (set! mode '2d)
-  (glDisable GL_DEPTH_TEST)
+  (gl-disable (enable-cap depth-test))
   (resize-screen-GL (get-screen-width) (get-screen-height)))
 
 (define (set-3d-mode)
   (set! mode '3d)
-  (glClearDepth 1)
-  (glEnable GL_DEPTH_TEST)
-  (glDepthFunc GL_LEQUAL)
+  (set-gl-clear-depth 1)
+  (gl-enable (enable-cap depth-test))
+  (set-gl-depth-function (depth-function lequal))
   (resize-screen-GL (get-screen-width) (get-screen-height)))
 
 (define (3d-mode?)
 
 
 (define (init-gl)
-  (glShadeModel GL_SMOOTH)
-  (glClearColor 0 0 0 0)
-  (glEnable GL_BLEND)
-  (glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA)
-  (glHint GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST))
+  (set-gl-shade-model (shading-model smooth))
+  (set-gl-clear-color 0 0 0 0)
+  (gl-enable (enable-cap blend))
+  (set-gl-blend-function (blending-factor-dest src-alpha) (blending-factor-dest one-minus-src-alpha))
+  (glHint (hint-target perspective-correction-hint) (hint-mode nicest)))
 
 (define (resize-screen-GL width height)
   (glViewport 0 0 width height)
 
 (define-macro (progn-textures . code)
   `(let ((result #f))
-     (glEnable GL_TEXTURE_2D)
+     (gl-enable GL_TEXTURE_2D)
      (set! result (begin ,@code))
-     (glDisable GL_TEXTURE_2D)
+     (gl-disable GL_TEXTURE_2D)
      result))
 
 (define (draw . vertexes)
   (glLoadIdentity)
   (cond ((3d-mode?) (camera-look))))
 
-(define-macro (glmatrix-block . code)
-  `(let ((result #f))
-     (glPushMatrix)
-     (set! result (begin ,@code))
-     (glPopMatrix)
-     result))
-
 
 ;;; Lights
 
 ;;   (and light (glLightfv id GL_DIFFUSE (car light) (cadr light) (caddr light) (cadddr light)))
 ;;   (and light position (glLightfv GL_POSITION (car position) (cadr position) (caddr position) (cadddr position)))
 ;;   (and ambient (glLightfv id GL_AMBIENT (car ambient) (cadr ambient) (caddr ambient) (cadddr ambient)))
-;;   (and turn-on (glEnable id))
+;;   (and turn-on (gl-enable id))
 ;;   id)