diff --git a/aztecs-sdl.cabal b/aztecs-sdl.cabal
--- a/aztecs-sdl.cabal
+++ b/aztecs-sdl.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name:          aztecs-sdl
-version:       0.4.0
+version:       0.5.0
 license:       BSD-3-Clause
 license-file:  LICENSE
 maintainer:    matt@hunzinger.me
@@ -27,7 +27,7 @@
     ghc-options:      -Wall
     build-depends:
         base >=4.6 && <5,
-        aztecs >= 0.7 && <0.8,
+        aztecs >= 0.8 && <0.9,
         containers >=0.6,
         deepseq >=1,
         mtl >=2,
diff --git a/src/Aztecs/SDL.hs b/src/Aztecs/SDL.hs
--- a/src/Aztecs/SDL.hs
+++ b/src/Aztecs/SDL.hs
@@ -217,10 +217,11 @@
   let go windowDraws =
         mapM_
           ( \(window, cameraDraws) -> do
+              let renderer = windowRenderer window
+              rendererDrawColor renderer $= V4 0 0 0 255
+              clear renderer
               mapM_
                 ( \((camera, cameraTransform), cameraDraws') -> do
-                    let renderer = windowRenderer window
-                    rendererDrawColor renderer $= V4 0 0 0 255
                     rendererScale renderer $= fmap realToFrac (cameraScale camera)
                     rendererViewport renderer
                       $= Just
@@ -228,7 +229,6 @@
                             (P (fmap fromIntegral $ transformTranslation cameraTransform))
                             (fmap fromIntegral $ cameraViewport camera)
                         )
-                    clear renderer
                     mapM_
                       ( \(surface, transform, texture) -> do
                           textureDesc <- queryTexture $ unSurfaceTexture texture
@@ -250,9 +250,9 @@
                             (V2 False False)
                       )
                       cameraDraws'
-                    present renderer
                 )
                 cameraDraws
+              present renderer
           )
           windowDraws
    in reader allCameraSurfaces >>> access go
