Continue adding mutability

This commit is contained in:
jgk
2021-08-12 05:49:25 +02:00
parent c84bafb267
commit 4c9a3c8b3c
4 changed files with 47 additions and 30 deletions
+13 -10
View File
@@ -38,6 +38,7 @@ import Control.Monad
--import qualified Data.Set as S
import Graphics.Rendering.OpenGL hiding (color,scale,translate,rotate)
import qualified SDL
import qualified Data.Vector.Unboxed.Mutable as UMV
doDrawing :: RenderData -> World -> IO Word32
doDrawing pdata w = do
@@ -76,11 +77,13 @@ doDrawing pdata w = do
then renderTextureWalls pdata nWalls
else renderBlankWalls pdata nWalls
_ <- renderFoldable pdata $ polysToPic $ foregroundPics w
vnums <- pokeBindFoldableLayer pdata $ worldPictures w
let shads = _pictureShaders pdata
renderLayer 0 shads vnums
shadV <- picShadToMV $ _pictureShaders pdata
renderFoldable shadV $ polysToPic $ foregroundPics w
layerCounts <- UMV.replicate (6*6) 0
vnums <- pokeBindFoldableLayer shadV layerCounts $ worldPictures w
renderLayer' 0 shadV layerCounts
nTextArrayVs <- pokePoint33s (shadVBOptr $ _textureArrayShader pdata) (_floorTiles w)
bindShaderBuffers [_textureArrayShader pdata] [nTextArrayVs]
@@ -90,14 +93,14 @@ doDrawing pdata w = do
clear [ColorBuffer]
blendFunc $= (SrcAlpha,OneMinusSrcAlpha)
renderLayer 1 shads vnums
renderLayer' 1 shadV layerCounts
bindFramebuffer Framebuffer $= fst (_fboColor pdata)
clear [ColorBuffer]
depthMask $= Disabled
renderLayer 3 shads vnums
renderLayer 4 shads vnums
renderLayer 5 shads vnums
renderLayer' 3 shadV layerCounts
renderLayer' 4 shadV layerCounts
renderLayer' 5 shadV layerCounts
depthMask $= Enabled
bindFramebuffer Framebuffer $= fst (_fboFourth1 pdata)
@@ -141,7 +144,7 @@ doDrawing pdata w = do
depthFunc $= Just Lequal
--mapM_ (uncurry $ drawShaderLay 2) (vnums IM.! 2)
renderLayer 2 shads vnums
renderLayer' 2 shadV layerCounts
renderWindows pdata windowPoints
depthFunc $= Just Always
@@ -174,7 +177,7 @@ doDrawing pdata w = do
blend $= Enabled
blendFunc $= (SrcAlpha,OneMinusSrcAlpha)
_ <- renderFoldable pdata $ fixedCoordPictures w
renderFoldable shadV $ fixedCoordPictures w
depthMask $= Enabled
eTicks <- SDL.ticks