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