Remove vaoBufferTarget

This commit is contained in:
2021-06-12 01:14:42 +02:00
parent 5aab790806
commit a5744f02f0
3 changed files with 4 additions and 17 deletions
+2 -4
View File
@@ -203,10 +203,8 @@ renderBackground pdata rot camZoom (tranx,trany) (winx,winy) = do
bindArrayBuffers' 1 $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata bindArrayBuffers' 1 $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata
currentProgram $= Just (_shaderProgram $ _backgroundShader pdata) currentProgram $= Just (_shaderProgram $ _backgroundShader pdata)
bindVertexArrayObject $= Just (_vao $ _shaderVAO $ _backgroundShader pdata) bindVertexArrayObject $= Just (_vao $ _shaderVAO $ _backgroundShader pdata)
let backPtr = (\(_,x,_) -> x) $ head $ _vaoBufferTargets $ _shaderVAO $ _backgroundShader pdata let backPtr = _vboPointer $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata
backPtr2 = (\(_,x,_) -> x) $ _vaoBufferTargets (_shaderVAO $ _backgroundShader pdata) !! 1 pokeArrayOff backPtr 0 [tranx,trany,rot,camZoom,winx,winy]
pokeFourOff backPtr 0 (tranx,trany,rot,camZoom)
pokeTwoOff backPtr2 0 (winx,winy)
textureBinding Texture2D $= _textureObject <$> _shaderTexture (_backgroundShader pdata) textureBinding Texture2D $= _textureObject <$> _shaderTexture (_backgroundShader pdata)
drawArrays Points 0 1 drawArrays Points 0 1
+2 -11
View File
@@ -3,6 +3,7 @@ module Shader
, addTexture , addTexture
, addUniforms , addUniforms
, pokeShaders , pokeShaders
, pokeArrayOff
--, pokeShader --, pokeShader
, pokeShader' , pokeShader'
--, bindArrayBuffers --, bindArrayBuffers
@@ -46,12 +47,6 @@ pokeShaders :: [FullShader] -> F.FoldM IO RenderType [Int]
pokeShaders = traverse pokeShader' pokeShaders = traverse pokeShader'
--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' :: FullShader -> F.FoldM IO RenderType Int
pokeShader' fs = F.FoldM (pokeRender' fls ptr stride) (return 0) return pokeShader' fs = F.FoldM (pokeRender' fls ptr stride) (return 0) return
where where
@@ -112,7 +107,6 @@ bindArrayBuffers' numVs theVBO = do
bindShaderBuffers :: [FullShader] -> [Int] -> IO () bindShaderBuffers :: [FullShader] -> [Int] -> IO ()
bindShaderBuffers = zipWithM_ f bindShaderBuffers = zipWithM_ f
where where
--f fs i = bindArrayBuffers i $ _vaoBufferTargets $ _shaderVAO fs
f fs i = bindArrayBuffers' i $ _vaoVBO $ _shaderVAO fs f fs i = bindArrayBuffers' i $ _vaoVBO $ _shaderVAO fs
drawShaders :: [FullShader] -> [Int] -> IO () drawShaders :: [FullShader] -> [Int] -> IO ()
@@ -189,7 +183,6 @@ setupVAO sizes = do
theVBO <- setupVBO $ sizes theVBO <- setupVBO $ sizes
return $ VAO return $ VAO
{ _vao = theVAO { _vao = theVAO
, _vaoBufferTargets = ptrs
, _vaoVBO = theVBO , _vaoVBO = theVBO
} }
@@ -334,6 +327,4 @@ setPerpMatUniform rot czoom trans wins vFrom shad = do
return () return ()
freeShaderPointers :: FullShader -> IO () freeShaderPointers :: FullShader -> IO ()
freeShaderPointers fs = do freeShaderPointers fs = free $ _vboPointer $ _vaoVBO $ _shaderVAO fs
forM_ (_vaoBufferTargets $ _shaderVAO fs) $ \(_,ptr,_) ->
free ptr
-2
View File
@@ -10,7 +10,6 @@ module Shader.Data
-- | Lens functions -- | Lens functions
, vao , vao
, vaoVBO , vaoVBO
, vaoBufferTargets
, shaderProgram , shaderProgram
, shaderMatrixUniform , shaderMatrixUniform
@@ -31,7 +30,6 @@ import Control.Lens
and its buffer targets. -} and its buffer targets. -}
data VAO = VAO data VAO = VAO
{ _vao :: VertexArrayObject { _vao :: VertexArrayObject
, _vaoBufferTargets :: [(BufferObject,Ptr Float,Int)]
, _vaoVBO :: VBO , _vaoVBO :: VBO
} }
{- | Vertex buffer object: contains the reference to the object, {- | Vertex buffer object: contains the reference to the object,