Store picture shaders in mutable vector
This commit is contained in:
+1
-2
@@ -57,9 +57,8 @@ doSideEffects preData w = do
|
||||
endTicks <- SDL.ticks
|
||||
let lastFrameTicks = _frameTimer preData
|
||||
|
||||
shadV <- picShadToMV $ _pictureShaders $ (_renderData preData)
|
||||
when (_displaySecondsPerFrame $ _debugFlags w) $ void $ renderFoldable
|
||||
shadV
|
||||
(_pictureShaders $ _renderData preData)
|
||||
(setDepth (-1)
|
||||
. translate (-0.5) (-0.8) . scale 0.0005 0.0005
|
||||
. text $ "ms/frame " ++ show (endTicks - lastFrameTicks)
|
||||
|
||||
@@ -8,6 +8,9 @@ import Shader.Data
|
||||
|
||||
import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight)
|
||||
import Control.Lens
|
||||
import qualified Data.Vector.Mutable as MV
|
||||
import Control.Monad.Primitive
|
||||
|
||||
data RenderData = RenderData
|
||||
{ _lightingOccludeShader :: FullShader
|
||||
, _lightingWallShader :: FullShader
|
||||
@@ -23,7 +26,7 @@ data RenderData = RenderData
|
||||
, _colorBlurShader :: FullShader
|
||||
, _barrelShader :: FullShader
|
||||
, _grayscaleShader :: FullShader
|
||||
, _pictureShaders :: PicShads VShader
|
||||
, _pictureShaders :: MV.MVector (PrimState IO) VShader
|
||||
, _fbo2 :: (FramebufferObject, TextureObject)
|
||||
, _fbo3 :: (FramebufferObject, TextureObject)
|
||||
, _fboFourth1 :: (FramebufferObject, TextureObject)
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ doDrawing pdata w = do
|
||||
then renderTextureWalls pdata nWalls
|
||||
else renderBlankWalls pdata nWalls
|
||||
|
||||
shadV <- picShadToMV $ _pictureShaders pdata
|
||||
let shadV = _pictureShaders pdata
|
||||
renderFoldable shadV $ polysToPic $ foregroundPics w
|
||||
|
||||
layerCounts <- UMV.replicate (6*6) 0
|
||||
|
||||
+13
-9
@@ -15,8 +15,9 @@ import Data.Preload.Render
|
||||
import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight)
|
||||
import Graphics.GL.Core43
|
||||
--import Control.Lens
|
||||
--import Control.Monad
|
||||
import Control.Monad
|
||||
import Foreign
|
||||
import qualified Data.Vector.Mutable as MV
|
||||
|
||||
numDrawableWalls :: Int
|
||||
numDrawableWalls = 5000
|
||||
@@ -116,15 +117,18 @@ preloadRender = do
|
||||
-- set the clearColor to have 1 alpha
|
||||
clearColor $= Color4 0 0 0 1
|
||||
|
||||
shadV <- MV.new 6
|
||||
zipWithM_ (MV.write shadV) [0..5]
|
||||
[ bslist -- note the ordering is very important
|
||||
, basicTweakZShad -- ShadNum
|
||||
, bezierQuadShader
|
||||
, cslist
|
||||
, aslist
|
||||
, eslist
|
||||
]
|
||||
|
||||
return $ RenderData
|
||||
{ _pictureShaders = PicShads
|
||||
{ _psPoly = bslist
|
||||
, _psText = cslist
|
||||
, _psArc = aslist
|
||||
, _psEll = eslist
|
||||
, _psBez = bezierQuadShader
|
||||
, _psPolyz = basicTweakZShad
|
||||
}
|
||||
{ _pictureShaders = shadV
|
||||
, _lightingSurfaceShader = lightingSurfaceShad
|
||||
, _lightingLineShadowShader = lightingLineShadowShad
|
||||
, _lightingOccludeShader = wsShad {_shaderVAO = wpVAO}
|
||||
|
||||
Reference in New Issue
Block a user