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 ->
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