(glEnable GL_LIGHTING))
(define (resize-screen-GL width height)
- (glViewPort 0 0 width height)
+ (glViewport 0 0 width height)
(glMatrixMode GL_PROJECTION)
(glLoadIdentity)
(cond ((3d-mode?) (let ((ratio (if (= height 0) width (/ width height))))
(gluPerspective 45 ratio 0.1 100))) ;0.1
- (else (let* ((w (/ width 2)) (-w (neg w)) (h (/ height 2)) (-h (neg h)))
- (glOrtho -w w -h h 0 1))))
+ (else (let* ((w (/ width 2)) (h (/ height 2)))
+ (glOrtho (- w) w (- h) h 0 1))))
(glMatrixMode GL_MODELVIEW)
(glLoadIdentity)
#t)
(define-macro (run-game . code)
- `(let ((game-function (lambda () ,@code)))
+ `(let ((game-function ,(if (null? code)
+ `(lambda () #f)
+ `(lambda () ,@code))))
(init-video-mode)
(set-game-code game-function)
(cond ((not (game-running?))
(set! game-loop
(lambda ()
(set! running #t)
+ (quit? #f)
(do () ((quit?))
(init-frame-time)
- (check-connections)
- (eval-from-clients)
+; (check-connections)
+; (eval-from-clients)
(process-events)
(cond ((not (quit?))
(glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT))
(to-origin)
- (refresh-active-objects)
- (if (functionp game-code) (funcall game-code))
- (render-objects)
+; (refresh-active-objects)
+ (if (procedure? game-code) (game-code))
+; (render-objects)
(SDL_GL_SwapBuffers)
(delay-frame))))
(set! running #f)))
(set! game-code game-function))))
(define (quit-game)
-; (free-all-resources)
(quit-audio)
(quit-video-mode)
; (quit-all-mobs)
; (kill-all-objects)
-; (clear-events)
-; (quit-events)
+; (clear-events)
+ (quit-events)
(quit-sdl))