From d0305ed735f91995e6f78cb3cfbbb4092da86234 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 25 Jan 2017 22:14:25 -0500 Subject: render: viewport: Make applying the null viewport a no-op. * chickadee/render/viewport.scm (apply-viewport): Don't do anything if the viewport being applied is the null viewport. --- chickadee/render/viewport.scm | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'chickadee') diff --git a/chickadee/render/viewport.scm b/chickadee/render/viewport.scm index 6789766..ad057d1 100644 --- a/chickadee/render/viewport.scm +++ b/chickadee/render/viewport.scm @@ -96,16 +96,17 @@ CLEAR-FLAGS are 'color-buffer', 'depth-buffer', 'accum-buffer', and (define (apply-viewport viewport) "Set the OpenGL state for VIEWPORT. Clip rendering to the viewport area, set the clear color, and clear necessary buffers." - (let ((x (viewport-x viewport)) - (y (viewport-y viewport)) - (w (viewport-width viewport)) - (h (viewport-height viewport)) - (c (viewport-clear-color viewport))) - (gl-enable (enable-cap scissor-test)) - (gl-viewport x y w h) - (gl-scissor x y w h) - (gl-clear-color (color-r c) (color-g c) (color-b c) (color-a c)) - (gl-clear (clear-buffer-mask (viewport-clear-flags viewport))))) + (unless (eq? viewport null-viewport) + (let ((x (viewport-x viewport)) + (y (viewport-y viewport)) + (w (viewport-width viewport)) + (h (viewport-height viewport)) + (c (viewport-clear-color viewport))) + (gl-enable (enable-cap scissor-test)) + (gl-viewport x y w h) + (gl-scissor x y w h) + (gl-clear-color (color-r c) (color-g c) (color-b c) (color-a c)) + (gl-clear (clear-buffer-mask (viewport-clear-flags viewport)))))) (define *viewport-state* (make-gpu-state apply-viewport null-viewport)) -- cgit v1.2.3