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