From a5744f02f08cedb572808636acfa86bd8f33ae71 Mon Sep 17 00:00:00 2001 From: jgk Date: Sat, 12 Jun 2021 01:14:42 +0200 Subject: [PATCH] Remove vaoBufferTarget --- src/Picture/Render.hs | 6 ++---- src/Shader.hs | 13 ++----------- src/Shader/Data.hs | 2 -- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/Picture/Render.hs b/src/Picture/Render.hs index ca5c1f342..97f039d2e 100644 --- a/src/Picture/Render.hs +++ b/src/Picture/Render.hs @@ -203,10 +203,8 @@ renderBackground pdata rot camZoom (tranx,trany) (winx,winy) = do bindArrayBuffers' 1 $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata currentProgram $= Just (_shaderProgram $ _backgroundShader pdata) bindVertexArrayObject $= Just (_vao $ _shaderVAO $ _backgroundShader pdata) - let backPtr = (\(_,x,_) -> x) $ head $ _vaoBufferTargets $ _shaderVAO $ _backgroundShader pdata - backPtr2 = (\(_,x,_) -> x) $ _vaoBufferTargets (_shaderVAO $ _backgroundShader pdata) !! 1 - pokeFourOff backPtr 0 (tranx,trany,rot,camZoom) - pokeTwoOff backPtr2 0 (winx,winy) + let backPtr = _vboPointer $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata + pokeArrayOff backPtr 0 [tranx,trany,rot,camZoom,winx,winy] textureBinding Texture2D $= _textureObject <$> _shaderTexture (_backgroundShader pdata) drawArrays Points 0 1 diff --git a/src/Shader.hs b/src/Shader.hs index b32f0d19e..3bd531fb1 100644 --- a/src/Shader.hs +++ b/src/Shader.hs @@ -3,6 +3,7 @@ module Shader , addTexture , addUniforms , pokeShaders + , pokeArrayOff --, pokeShader , pokeShader' --, bindArrayBuffers @@ -46,12 +47,6 @@ pokeShaders :: [FullShader] -> F.FoldM IO RenderType [Int] pokeShaders = traverse pokeShader' --pokeShaders = traverse pokeShader -pokeShader :: FullShader -> F.FoldM IO RenderType Int -pokeShader fs = F.FoldM (pokeRender fls (zip ptrs nAtss)) (return 0) return - where - (_,ptrs,nAtss) = unzip3 $ _vaoBufferTargets $ _shaderVAO fs - fls = _shaderPokeStrategy fs - pokeShader' :: FullShader -> F.FoldM IO RenderType Int pokeShader' fs = F.FoldM (pokeRender' fls ptr stride) (return 0) return where @@ -112,7 +107,6 @@ bindArrayBuffers' numVs theVBO = do bindShaderBuffers :: [FullShader] -> [Int] -> IO () bindShaderBuffers = zipWithM_ f where - --f fs i = bindArrayBuffers i $ _vaoBufferTargets $ _shaderVAO fs f fs i = bindArrayBuffers' i $ _vaoVBO $ _shaderVAO fs drawShaders :: [FullShader] -> [Int] -> IO () @@ -189,7 +183,6 @@ setupVAO sizes = do theVBO <- setupVBO $ sizes return $ VAO { _vao = theVAO - , _vaoBufferTargets = ptrs , _vaoVBO = theVBO } @@ -334,6 +327,4 @@ setPerpMatUniform rot czoom trans wins vFrom shad = do return () freeShaderPointers :: FullShader -> IO () -freeShaderPointers fs = do - forM_ (_vaoBufferTargets $ _shaderVAO fs) $ \(_,ptr,_) -> - free ptr +freeShaderPointers fs = free $ _vboPointer $ _vaoVBO $ _shaderVAO fs diff --git a/src/Shader/Data.hs b/src/Shader/Data.hs index 4600e2e1f..3a9e334f2 100644 --- a/src/Shader/Data.hs +++ b/src/Shader/Data.hs @@ -10,7 +10,6 @@ module Shader.Data -- | Lens functions , vao , vaoVBO - , vaoBufferTargets , shaderProgram , shaderMatrixUniform @@ -31,7 +30,6 @@ import Control.Lens and its buffer targets. -} data VAO = VAO { _vao :: VertexArrayObject - , _vaoBufferTargets :: [(BufferObject,Ptr Float,Int)] , _vaoVBO :: VBO } {- | Vertex buffer object: contains the reference to the object,