Start cleanup

This commit is contained in:
2021-08-12 15:02:26 +02:00
parent 62af1402ad
commit 53555865f6
10 changed files with 121 additions and 387 deletions
+8 -15
View File
@@ -22,7 +22,7 @@ import Foreign hiding (rotate)
import Graphics.Rendering.OpenGL hiding (Line,translate,scale,imageHeight,Polygon,Color,T)
--import Data.Foldable
--import Data.Tuple.Extra
import qualified Data.IntMap.Strict as IM
--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
@@ -146,7 +146,7 @@ drawTextureOnFramebuffer fs fbo to = do
drawShader fs 4
pokeBindFoldable
:: MV.MVector (PrimState IO) VShader
:: MV.MVector (PrimState IO) FullShader
-> UMV.MVector (PrimState IO) Int
-> [Verx]
-> IO ()
@@ -154,11 +154,8 @@ pokeBindFoldable shadV counts m = do
pokeVerxs shadV counts m
bindShader shadV counts
zeroCounts :: PicShads Int
zeroCounts = PicShads 0 0 0 0 0 0
pokeBindFoldableLayer
:: MV.MVector (PrimState IO) VShader
:: MV.MVector (PrimState IO) FullShader
-> UMV.MVector (PrimState IO) Int
-> Picture
-> IO ()
@@ -167,7 +164,7 @@ pokeBindFoldableLayer shadV counts m = do
bindShaderLayers shadV counts
renderFoldable
:: MV.MVector (PrimState IO) VShader
:: MV.MVector (PrimState IO) FullShader
-> [Verx]
-> IO ()
renderFoldable shadV struct = do
@@ -176,7 +173,7 @@ renderFoldable shadV struct = do
MV.imapM_ (drawShaderLay' 0 counts) shadV
renderFoldableTimed
:: MV.MVector (PrimState IO) VShader
:: MV.MVector (PrimState IO) FullShader
-> [Verx]
-> IO Word32
renderFoldableTimed shadV struct = do
@@ -188,18 +185,14 @@ renderFoldableTimed shadV struct = do
return $ pokeEndTicks - pokeStartTicks
------------------------------end renderFoldable
renderLayer :: Int -> PicShads VShader -> IM.IntMap (PicShads Int) -> IO ()
renderLayer layer shads counts = sequence_ $ drawShaderLay layer <$> shads <*> counts IM.! layer
renderLayer'
renderLayer
:: Int
-> MV.MVector (PrimState IO) VShader
-> MV.MVector (PrimState IO) FullShader
-> UMV.MVector (PrimState IO) Int
-> IO ()
renderLayer' layer shads counts = do
renderLayer layer shads counts = do
let layerCounts = UMV.slice (layer * 6) 6 counts
MV.imapM_ (drawShaderLay' layer layerCounts) shads
-- sequence_ $ drawShaderLay layer <$> shads <*> counts IM.! layer
pokeTwoOff
:: Ptr Float