t)
(defmacro progn-textures (&body code)
- `(progn
+ `(let (values)
(init-video-mode)
(glEnable GL_TEXTURE_2D)
- ,@code
- (glDisable GL_TEXTURE_2D)))
+ (setq values (multiple-value-list (progn ,@code)))
+ (glDisable GL_TEXTURE_2D)
+ (apply #'values values)))
(defun init-textures ()
(init-video-mode)
(glLoadIdentity)
t))
+(let ((current-color '(1 1 1 1)))
+ (defun get-current-color ()
+ current-color)
+
+ (defun set-current-color (red green blue &optional (alpha 1))
+ (setq current-color (list red green blue alpha))
+ (glColor4f red green blue alpha)))
+
(defun copy-surface (source)
(cond ((surface-p source)
(let ((new-surface
;;; GaCeLa Functions
-;(defun game-loop (code)
-; (process-events)
-; (cond ((quit?) nil)
-; (t
-; (glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT))
-; (glLoadIdentity)
-; (translate 0 0 *zoom*)
-; (funcall code)
-; (SDL_GL_SwapBuffers)
-; (SDL_Delay (- *gacela-freq* (rem (SDL_GetTicks) *gacela-freq*)))
-; (game-loop code))))
-
(let (commands)
(defun prog-command (command)
(setq commands (cons command commands)))
(process-events)
(setq running nil))))
-;(defun run-game ()
-; (init-video-mode)
-; (SDL_WM_SetCaption *title-screen* "")
-; (refresh-active-procs)
-; (enjoy!)
-; (do () ((quit?))
-; (process-events)
-; (logic-procs)
-; (motion-procs)
-; (refresh-active-procs)
-; (refresh-screen)
-; (SDL_Delay (- *gacela-freq* (rem (SDL_GetTicks) *gacela-freq*)))))
-
(defun quit-game ()
; (free-all-resources)
; (quit-audio)