From d4795749e353d325a3ecf0d95d6a01b36c6c20a3 Mon Sep 17 00:00:00 2001 From: jgk Date: Thu, 24 Jun 2021 18:19:03 +0200 Subject: [PATCH] Change bufferData to bufferSubData --- src/Dodge/Render.hs | 2 +- src/Shader.hs | 18 ++++++++++++------ src/Shader/Compile.hs | 6 ++++++ 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 4632a1e26..d7bbba773 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -27,7 +27,7 @@ import Foreign --import Control.Applicative --import Control.Monad.State import Control.Lens -import Control.Monad +--import Control.Monad import qualified Control.Foldl as F import Data.Tuple.Extra --import Data.List diff --git a/src/Shader.hs b/src/Shader.hs index 8f9d28d87..8b7e31886 100644 --- a/src/Shader.hs +++ b/src/Shader.hs @@ -5,23 +5,29 @@ module Shader , drawShaders , freeShaderPointers ) where -import Geometry.Data +--import Geometry.Data import Shader.Data import Shader.Parameters -import MatrixHelper +--import MatrixHelper import Foreign import Control.Monad import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight) --import Text.RawString.QQ -import Linear.Matrix -import Linear.V4 +--import Linear.Matrix +--import Linear.V4 bindArrayBuffers :: Int -> VBO -> IO () bindArrayBuffers numVs theVBO = do bindBuffer ArrayBuffer $= Just (_vbo theVBO) - bufferData ArrayBuffer $= - (fromIntegral $ floatSize * numVs * sum (_vboAttribSizes theVBO), _vboPointer theVBO, DynamicDraw) +-- bufferData ArrayBuffer $= +-- (fromIntegral $ floatSize * numVs * sum (_vboAttribSizes theVBO), _vboPointer theVBO, DynamicDraw) + bufferSubData + ArrayBuffer + WriteToBuffer + 0 + (fromIntegral $ floatSize * numVs * sum (_vboAttribSizes theVBO)) + (_vboPointer theVBO) bindShaderBuffers :: [FullShader] -> [Int] -> IO () bindShaderBuffers = zipWithM_ f diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index 47fe60e6c..0d49b9d52 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -68,6 +68,12 @@ setupVBO sizes = do forM_ (zip3 [0..] sizes offs) $ \(loc,siz,off) -> do setupVertexAttribPointer loc siz strd off thePtr <- mallocArray (strd * numDrawableElements) + -- Allocate space + bufferData ArrayBuffer $= + (fromIntegral $ floatSize * numDrawableElements * strd + , nullPtr + , DynamicDraw + ) return $ VBO { _vbo = vboName , _vboPointer = thePtr