Implement texture atlas, details on why it works unclear

This commit is contained in:
jgk
2021-06-14 16:24:10 +02:00
parent f09fe8798e
commit 73bd407c49
16 changed files with 118 additions and 26 deletions
+4 -4
View File
@@ -1,5 +1,5 @@
module Shader
( bindArrayBuffers'
( bindArrayBuffers
, bindShaderBuffers
, drawShader
, drawShaders
@@ -24,8 +24,8 @@ import Linear.V4
extractProgAndUnis :: FullShader -> (Program,UniformLocation)
extractProgAndUnis s = (_shaderProgram s, _shaderMatrixUniform s)
bindArrayBuffers' :: Int -> VBO -> IO ()
bindArrayBuffers' numVs theVBO = do
bindArrayBuffers :: Int -> VBO -> IO ()
bindArrayBuffers numVs theVBO = do
bindBuffer ArrayBuffer $= Just (_vbo theVBO)
bufferData ArrayBuffer $=
(fromIntegral $ floatSize * numVs * (sum $ _vboAttribSizes theVBO), _vboPointer theVBO, DynamicDraw)
@@ -34,7 +34,7 @@ bindArrayBuffers' numVs theVBO = do
bindShaderBuffers :: [FullShader] -> [Int] -> IO ()
bindShaderBuffers = zipWithM_ f
where
f fs i = bindArrayBuffers' i $ _vaoVBO $ _shaderVAO fs
f fs i = bindArrayBuffers i $ _vaoVBO $ _shaderVAO fs
drawShaders :: [FullShader] -> [Int] -> IO ()
drawShaders = zipWithM_ drawShader