Files
loop/src/Data/Preload/Render.hs
T
2023-03-17 16:51:02 +00:00

65 lines
2.0 KiB
Haskell

{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
--{-# OPTIONS_GHC -Wno-unused-top-binds #-}
module Data.Preload.Render where
import Control.Lens
import Control.Monad.Primitive
import qualified Data.Vector.Mutable as MV
import Graphics.GL.Core45
import Shader.Data
newtype FBO = FBO {_unFBO :: GLuint}
newtype TO = TO {_unTO :: GLuint}
data RenderData = RenderData
{ _lightingWallShadShader :: FullShader
, _lightingLineShadowShader :: FullShader
, _lightingCapShader :: FullShader
, _lightingTextureShader :: FullShader
, _shadowEdgeShader :: FullShader
, _shadowCapShader :: FullShader
, _shadowWallShader :: FullShader
, _shadowLightShader :: (FullShader,VBO)
, _shadowCombineShader :: (FullShader,VBO)
, _positionalBlankShader :: (FullShader,VBO)
, _wallBlankShader :: FullShader
, _windowShader :: FullShader
, _wallTextureShader :: FullShader
, _textureArrayShader :: (FullShader,VBO)
, _fullscreenShader :: (FullShader,VBO)
, _bloomBlurShader :: FullShader
, _colorBlurShader :: FullShader
, _barrelShader :: (FullShader,VBO)
, _grayscaleShader :: FullShader
, _shapeShader :: FullShader
, _shapeEBO :: EBO
, _silhouetteEBO :: EBO
, _pictureShaders :: MV.MVector (PrimState IO) (FullShader,VBO)
, _fbo2 :: (FBO, TO)
, _fbo3 :: (FBO, TO)
, _fboHalf1 :: (FBO, TO)
, _fboHalf2 :: (FBO, TO)
, _fboHalf3 :: (FBO, TO)
, _fboBase :: (FBO, (TO, TO, TO))
, _fboCloud :: (FBO, (TO, TO))
, _fboBloom :: (FBO, TO)
, _fboPos :: (FBO, TO)
, _fboLighting :: (FBO, TO)
, _fboShadow :: (FBO, (TO, TO))
, _rboBaseBloom :: GLuint -- RenderbufferObject id
, _matUBO :: GLuint -- BufferObject id
, _orthonormalMatUBO :: GLuint -- BufferObject id
, _lightsUBO :: GLuint -- BufferObject id
, _vboWalls :: VBO
, _vboWindows :: VBO
, _vboShapes :: VBO
, _toNormalMaps :: TO
}
makeLenses ''RenderData
makeLenses ''FBO
makeLenses ''TO