Files
loop/src/Preload/Update.hs
T
2023-03-08 18:31:32 +00:00

57 lines
1.5 KiB
Haskell

{-# LANGUAGE OverloadedStrings #-}
module Preload.Update (
pdataResizeUpdate,
) where
import Control.Lens
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as BSC
import Data.Preload
import Data.Preload.Render
import Framebuffer.Update
import Shader.Compile
import Shader.Data
pdataResizeUpdate ::
-- | Scaled width
Int ->
-- | Scaled height
Int ->
-- | Full width
Int ->
-- | Full height
Int ->
PreloadData ->
IO PreloadData
pdataResizeUpdate xsize ysize xfull yfull pdata = do
rd <- renderDataResizeUpdate xsize ysize xfull yfull (_renderData pdata)
return (pdata{_renderData = rd})
renderDataResizeUpdate ::
-- | Scaled width
Int ->
-- | Scaled height
Int ->
-- | Full width
Int ->
-- | Full height
Int ->
RenderData ->
IO RenderData
renderDataResizeUpdate xsize ysize xfull yfull rdata = do
rdata' <- sizeFBOs xsize ysize xfull yfull rdata
bbVert <- BS.readFile "shader/texture/bloomBlur.vert"
bbFrag <- BS.readFile "shader/texture/bloomBlur.frag"
let (bh, bmid) = BS.breakSubstring "(" bbFrag
(_, btt) = BS.breakSubstring ")" bmid
bbFrag' = BS.append bh $ BS.append (BSC.pack $ '(' : show xsize ++ "," ++ show ysize) btt
--BSC.putStrLn bbFrag'
bbShad <-
makeByteStringShaderUsingVAO
"bloomBlur"
[(vert', bbVert), (frag', bbFrag')]
ETriangleStrip
(rdata ^. fullscreenShader . shadVAO')
return (rdata'{_bloomBlurShader = bbShad})