Continue shader refactor

This commit is contained in:
2023-04-13 00:13:36 +01:00
parent 500b2bb2be
commit cd46998e05
2 changed files with 11 additions and 11 deletions
+4 -4
View File
@@ -68,7 +68,7 @@ preloadRender = do
-- setup shape geometry/cap VBO and two VAOs
putStrLn "Setup shape VBO, VAO, EBO"
shVBO <- setupVBO (nShapeVerxComp)
shVBO <- setupVBO' (floatSize * nShapeVerxComp)
shPosVAO <- setupVAOUsingVBO [VertexAttribute 4 GL_FLOAT GL_FALSE 0] shVBO
shEBO <- setupEBO shPosVAO
-- note the shape shader vao is distinct from the position vao, but they
@@ -83,8 +83,8 @@ preloadRender = do
putStrLn "Setup wall/windows VBO, VAO, EBO, shader"
let wallverxstrd = 8
wallvbo <- setupVBO (wallverxstrd)
winvbo <- setupVBO (8)
wallvbo <- setupVBO' (floatSize * wallverxstrd)
winvbo <- setupVBO' (floatSize * 8)
windowshader <- makeShaderUsingVBO "wall/blank" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints winvbo
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
putStrLn "Setup lighting shaders"
@@ -143,7 +143,7 @@ preloadRender = do
putStrLn "Setup cloud VBO, shader"
let cloudverxsizes = [4, 4, 4, 4]
cloudvbo <- setupVBO (sum cloudverxsizes)
cloudvbo <- setupVBO' (floatSize * sum cloudverxsizes)
(cloudshader, cloudebo) <-
makeShaderEBO "cloud/basic" [vert, frag] cloudverxsizes pmTriangles cloudvbo
framebuf2 <- newTextureFramebuffer
+7 -7
View File
@@ -1,5 +1,5 @@
module Shader.Compile (
setupVBO,
setupVBO',
setupVBOStatic,
makeShaderEBO,
makeShaderVBO,
@@ -89,17 +89,17 @@ makeShaderUsingVBO s shaderlist sizes pm vbo = do
vao <- setupVAOUsingVBO sizes vbo
makeShaderUsingVAO s shaderlist pm vao
setupVBO :: Int -> IO VBO
setupVBO vertexsize = do
setupVBO' :: Int -> IO VBO
setupVBO' vertexsize = do
vboname <- mglCreate glCreateBuffers
thePtr <- mallocArray (vertexsize * numDrawableElements)
thePtr <- mallocBytes (vertexsize * numDrawableElements)
-- Allocate space
glNamedBufferData
vboname
(fromIntegral $ floatSize * numDrawableElements * vertexsize)
(fromIntegral $ numDrawableElements * vertexsize)
nullPtr
GL_STREAM_DRAW
return VBO{_vboName = vboname, _vboPtr = thePtr, _vboVertexBytes = floatSize * vertexsize}
return VBO{_vboName = vboname, _vboPtr = thePtr, _vboVertexBytes = vertexsize}
-- the input ptr is assumed to contain the correct amount of data according to
-- the specified number and type of vertices
@@ -249,7 +249,7 @@ setupVBOVAO :: [Int] -> IO (VAO, VBO)
setupVBOVAO sizes = do
vaoname <- mglCreate glCreateVertexArrays
glBindVertexArray vaoname
vbo <- setupVBO (sum sizes)
vbo <- setupVBO' (floatSize * sum sizes)
--vao <- setupVAOvbo (toFloatVAs sizes) (sum sizes) (vbo ^. vboName)
vao <- setupVAOUsingVBO (toFloatVAs sizes) vbo
return (vao,vbo)