43 lines
1.4 KiB
Haskell
43 lines
1.4 KiB
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
module Preload.Update
|
|
(pdataResizeUpdate
|
|
) where
|
|
import Data.Preload
|
|
import Framebuffer.Update
|
|
import Shader.Compile
|
|
import Shader.Data
|
|
import Data.Preload.Render
|
|
|
|
import qualified Data.ByteString as BS
|
|
import qualified Data.ByteString.Char8 as BSC
|
|
pdataResizeUpdate
|
|
:: Int -- ^ Scaled width
|
|
-> Int -- ^ Scaled height
|
|
-> Int -- ^ Full width
|
|
-> Int -- ^ Full height
|
|
-> PreloadData a
|
|
-> IO (PreloadData a)
|
|
pdataResizeUpdate xsize ysize xfull yfull pdata = do
|
|
rd <- renderDataResizeUpdate xsize ysize xfull yfull (_renderData pdata)
|
|
return (pdata {_renderData = rd})
|
|
|
|
renderDataResizeUpdate
|
|
:: Int -- ^ Scaled width
|
|
-> Int -- ^ Scaled height
|
|
-> Int -- ^ Full width
|
|
-> Int -- ^ Full height
|
|
-> 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
|
|
(_fullscreenShader rdata)
|
|
return (rdata' {_bloomBlurShader = bbShad})
|
|
|