Refactor framebuffer update

This commit is contained in:
2023-03-24 13:20:02 +00:00
parent 4d09927d42
commit 000fcbc1c9
+16 -16
View File
@@ -22,31 +22,31 @@ sizeFBOs ::
Configuration -> Configuration ->
RenderData -> RenderData ->
IO RenderData IO RenderData
sizeFBOs cfig rdata = do sizeFBOs cfig rdata =
uncurry (resizeRBO (_rboBaseBloom rdata)) (getWindowSize _graphics_world_resolution cfig) 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 GL_NEAREST GL_NEAREST GL_RGBA8 GL_RGBA16F GL_RGBA16F rdata fboBase
rdata2 <- uncurry updateFBOTO3 (getWindowSize _graphics_world_resolution cfig) >>= flip ( uncurry updateFBOTO3 (getWindowSize _graphics_world_resolution cfig)
GL_NEAREST GL_NEAREST GL_RGBA8 GL_RGBA16F GL_RGBA16F rdata1 fboCloud GL_NEAREST GL_NEAREST GL_RGBA8 GL_RGBA16F GL_RGBA16F) fboCloud
rdata' <- uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig) >>= flip ( uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig)
GL_NEAREST GL_NEAREST GL_RGBA8 rdata2 fboLighting GL_NEAREST GL_NEAREST GL_RGBA8) fboLighting
rdata'' <- >>=
foldM ffoldM
(uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig) (uncurry updateFBOTO (getWindowSize _graphics_world_resolution cfig)
GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F) GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F)
rdata'
[fboBloom, fboPos] [fboBloom, fboPos]
rdata''' <- >>=
foldM ffoldM
(uncurry updateFBOTO (getWindowSize _graphics_overlay_resolution cfig) GL_NEAREST GL_NEAREST GL_RGBA8) (uncurry updateFBOTO (getWindowSize _graphics_overlay_resolution cfig) GL_NEAREST GL_NEAREST GL_RGBA8)
rdata''
[fbo2, fbo3] [fbo2, fbo3]
rdata4 <- >>= ffoldM
foldM
(uncurry updateFBOTO (getWindowSize _graphics_downsize_resolution cfig) GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F) (uncurry updateFBOTO (getWindowSize _graphics_downsize_resolution cfig) GL_LINEAR_MIPMAP_LINEAR GL_LINEAR GL_RGBA16F)
rdata'''
[fboHalf1, fboHalf2, fboHalf3] [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 :: resizeRBO ::
GLuint -> -- RenderbufferObject GLuint -> -- RenderbufferObject