diff --git a/src/Framebuffer/Update.hs b/src/Framebuffer/Update.hs index 69d174cf6..4d24c4f2a 100644 --- a/src/Framebuffer/Update.hs +++ b/src/Framebuffer/Update.hs @@ -22,31 +22,31 @@ sizeFBOs :: Configuration -> RenderData -> IO RenderData -sizeFBOs cfig rdata = do +sizeFBOs cfig rdata = uncurry (resizeRBO (_rboBaseBloom rdata)) (getWindowSize _graphics_world_resolution cfig) - rdata1 <- uncurry updateFBOTO3 (getWindowSize _graphics_world_resolution cfig) + >> uncurry updateFBOTO3 (getWindowSize _graphics_world_resolution cfig) GL_NEAREST GL_NEAREST GL_RGBA8 GL_RGBA16F GL_RGBA16F rdata fboBase - rdata2 <- uncurry updateFBOTO3 (getWindowSize _graphics_world_resolution cfig) - GL_NEAREST GL_NEAREST GL_RGBA8 GL_RGBA16F GL_RGBA16F rdata1 fboCloud - rdata' <- uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig) - GL_NEAREST GL_NEAREST GL_RGBA8 rdata2 fboLighting - rdata'' <- - foldM + >>= flip ( uncurry updateFBOTO3 (getWindowSize _graphics_world_resolution cfig) + GL_NEAREST GL_NEAREST GL_RGBA8 GL_RGBA16F GL_RGBA16F) fboCloud + >>= flip ( uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig) + GL_NEAREST GL_NEAREST GL_RGBA8) fboLighting + >>= + ffoldM (uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig) GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F) - rdata' [fboBloom, fboPos] - rdata''' <- - foldM + >>= + ffoldM (uncurry updateFBOTO (getWindowSize _graphics_overlay_resolution cfig) GL_NEAREST GL_NEAREST GL_RGBA8) - rdata'' [fbo2, fbo3] - rdata4 <- - foldM + >>= ffoldM (uncurry updateFBOTO (getWindowSize _graphics_downsize_resolution cfig) GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F) - rdata''' [fboHalf1, fboHalf2, fboHalf3] - resizeShadowFBO' cfig rdata4 + >>= resizeShadowFBO' cfig + +ffoldM :: (Foldable t, Monad m) => + (a1 -> a2 -> m a1) -> t a2 -> a1 -> m a1 +ffoldM f = flip $ foldM f resizeRBO :: GLuint -> -- RenderbufferObject