From 58c6c9c3c3ebf3870a5c0320d963f3a5f64ffcd7 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 28 Oct 2014 22:24:53 -0400 Subject: viewport: Memoize clear-buffer-mask. * sly/render/camera.scm (clear-buffer-mask): Memoize. --- sly/render/camera.scm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/sly/render/camera.scm b/sly/render/camera.scm index 5afb6f7..f5921e3 100644 --- a/sly/render/camera.scm +++ b/sly/render/camera.scm @@ -28,6 +28,7 @@ #:use-module (gl low-level) #:use-module (gl enums) #:use-module (sly wrappers gl) + #:use-module (sly helpers) #:use-module (sly color) #:use-module (sly rect) #:use-module (sly transform) @@ -60,15 +61,17 @@ values for CLEAR-FLAGS are 'color-buffer', 'depth-buffer', 'accum-buffer', and 'stencil-buffer'." (%make-viewport area clear-color clear-flags)) -(define (clear-buffer-mask flags) - (apply logior - ;; Map symbols to OpenGL constants. - (map (match-lambda - ('depth-buffer 256) - ('accum-buffer 512) - ('stencil-buffer 1024) - ('color-buffer 16384)) - flags))) +(define clear-buffer-mask + (memoize + (lambda (flags) + (apply logior + ;; Map symbols to OpenGL constants. + (map (match-lambda + ('depth-buffer 256) + ('accum-buffer 512) + ('stencil-buffer 1024) + ('color-buffer 16384)) + flags))))) (define (apply-viewport viewport) "Set the OpenGL state for VIEWPORT. Clip rendering to the viewport -- cgit v1.2.3