Add more mutability

This commit is contained in:
2021-08-11 20:34:34 +02:00
parent b77683bafd
commit 0c4c83abb5
3 changed files with 34 additions and 15 deletions
+8 -5
View File
@@ -25,6 +25,7 @@ import Graphics.Rendering.OpenGL hiding (Line,translate,scale,imageHeight,Polygo
import qualified Data.IntMap.Strict as IM
import qualified SDL
import qualified Data.Vector.Unboxed.Mutable as UMV
import qualified Data.Vector.Mutable as MV
divideSize :: Int -> Size -> Size
divideSize i (Size x y) = Size (div x $ fromIntegral i) (div y $ fromIntegral i)
@@ -144,11 +145,10 @@ drawTextureOnFramebuffer fs fbo to = do
drawShader fs 4
pokeBindFoldable
:: RenderData
:: PicShads VShader
-> [Verx]
-> IO (PicShads Int)
pokeBindFoldable pdata m = do
let shads = _pictureShaders pdata
pokeBindFoldable shads m = do
counts <- UMV.replicate 6 0
pokeVerxs (fmap (_vaoVBO . _vshaderVAO) shads) counts m
shads' <- picShadToMV shads
@@ -175,9 +175,12 @@ renderFoldable
-> IO Word32
renderFoldable pdata struct = do
pokeStartTicks <- SDL.ticks
count <- pokeBindFoldable pdata struct
let shads = _pictureShaders pdata
sequence_ (drawShaderLay 0 <$> shads <*> count)
count <- pokeBindFoldable shads struct
s <- picShadToMV shads
c <- picShadToUMV count
MV.imapM_ (drawShaderLay' 0 c) s
--sequence_ (drawShaderLay 0 <$> shads <*> count)
pokeEndTicks <- SDL.ticks
return $ pokeEndTicks - pokeStartTicks
------------------------------end renderFoldable