Continue shader refactor
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user