- `(let ((original-color (get-current-color)))
- (apply #'set-current-color ,color)
- ,@code
- (apply #'set-current-color original-color)))
+ (cond (color
+ `(let ((original-color (get-current-color))
+ result)
+ (apply #'set-current-color ,color)
+ (setq result ,@code)
+ (apply #'set-current-color original-color)
+ result))
+ (t
+ `(progn
+ ,@code))))
+
+(defmacro progn-textures (&body code)
+ `(let (values)
+ (init-video-mode)
+ (glEnable GL_TEXTURE_2D)
+ (setq values (multiple-value-list (progn ,@code)))
+ (glDisable GL_TEXTURE_2D)
+ (apply #'values values)))