57 lines
1.5 KiB
Haskell
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})
|