Fix picture vertex buffering bug
This commit is contained in:
@@ -54,12 +54,14 @@ testSPic :: Config -> Universe -> SPic
|
||||
testSPic cfig u = noShape $ testPic cfig u
|
||||
|
||||
testPic :: Config -> Universe -> Picture
|
||||
testPic _ _ = setLayer DebugLayer
|
||||
testPic _ _ = f
|
||||
$ mempty
|
||||
-- <> color white (line [0,10])
|
||||
-- <> text "A"
|
||||
<> color white (line [0,10])
|
||||
<> text "A"
|
||||
<> translate 20 20 (arc pi 0 10)
|
||||
<> translate 0 20 (circleSolidCol white red 10)
|
||||
where
|
||||
f x = translate 5 20 (setLayer DebugLayer x) <> setLayer BloomLayer x
|
||||
-- fold $ do
|
||||
-- cr <- u ^? uvWorld . cWorld . lWorld . creatures . ix 0
|
||||
---- return mempty
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ data Verx = Verx
|
||||
data Layer
|
||||
= BloomLayer
|
||||
| DebugLayer
|
||||
| DebugLayer1
|
||||
-- | DebugLayer1
|
||||
| FixedCoordLayer
|
||||
deriving (Eq, Ord, Enum, Bounded, Show, Read) --Generic, Flat)
|
||||
|
||||
|
||||
@@ -228,6 +228,7 @@ renderLayer ::
|
||||
IO ()
|
||||
renderLayer layer shads counts = do
|
||||
let layerCounts = UMV.slice (ln * numShads) numShads counts
|
||||
putStrLn $ "layer: " <> show (ln * numShads)
|
||||
MV.imapM_ (drawShaderLay ln layerCounts) shads
|
||||
where
|
||||
ln = fromEnum layer
|
||||
|
||||
@@ -10,7 +10,9 @@ import Shader.Parameters
|
||||
drawShaderLay :: Int -> UMV.MVector (PrimState IO) Int -> Int -> (GLuint, VBO) -> IO ()
|
||||
{-# INLINE drawShaderLay #-}
|
||||
drawShaderLay l countsVector shadIn fs = do
|
||||
putStr $ " shader: " <> show shadIn
|
||||
i <- UMV.read countsVector shadIn
|
||||
putStrLn $ " count: " <> show i
|
||||
glUseProgram (fst fs)
|
||||
glUniform1i 0 . fromIntegral $ (l * numSubElements)
|
||||
-- if l == fromEnum DebugLayer && shadIn == 0 then print i else return ()
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ bufferShaderLayers counts = MV.imapM_ f
|
||||
VFSM.mapM_ (g stride theVBO) $ VFSM.enumFromStepN 0 1 numLayers -- [0..5]
|
||||
where
|
||||
g stride theVBO lay = do
|
||||
numVs <- UMV.unsafeRead counts $ lay * numLayers + i
|
||||
numVs <- UMV.unsafeRead counts $ lay * numShads + i
|
||||
glNamedBufferSubData
|
||||
(_vboName theVBO)
|
||||
(fromIntegral $ floatSize * stride * numSubElements * lay)
|
||||
|
||||
Reference in New Issue
Block a user