Continue shader refactor
This commit is contained in:
@@ -68,7 +68,7 @@ preloadRender = do
|
|||||||
|
|
||||||
-- setup shape geometry/cap VBO and two VAOs
|
-- setup shape geometry/cap VBO and two VAOs
|
||||||
putStrLn "Setup shape VBO, VAO, EBO"
|
putStrLn "Setup shape VBO, VAO, EBO"
|
||||||
shVBO <- setupVBO (nShapeVerxComp)
|
shVBO <- setupVBO' (floatSize * nShapeVerxComp)
|
||||||
shPosVAO <- setupVAOUsingVBO [VertexAttribute 4 GL_FLOAT GL_FALSE 0] shVBO
|
shPosVAO <- setupVAOUsingVBO [VertexAttribute 4 GL_FLOAT GL_FALSE 0] shVBO
|
||||||
shEBO <- setupEBO shPosVAO
|
shEBO <- setupEBO shPosVAO
|
||||||
-- note the shape shader vao is distinct from the position vao, but they
|
-- 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"
|
putStrLn "Setup wall/windows VBO, VAO, EBO, shader"
|
||||||
let wallverxstrd = 8
|
let wallverxstrd = 8
|
||||||
wallvbo <- setupVBO (wallverxstrd)
|
wallvbo <- setupVBO' (floatSize * wallverxstrd)
|
||||||
winvbo <- setupVBO (8)
|
winvbo <- setupVBO' (floatSize * 8)
|
||||||
windowshader <- makeShaderUsingVBO "wall/blank" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints winvbo
|
windowshader <- makeShaderUsingVBO "wall/blank" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints winvbo
|
||||||
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
|
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
|
||||||
putStrLn "Setup lighting shaders"
|
putStrLn "Setup lighting shaders"
|
||||||
@@ -143,7 +143,7 @@ preloadRender = do
|
|||||||
|
|
||||||
putStrLn "Setup cloud VBO, shader"
|
putStrLn "Setup cloud VBO, shader"
|
||||||
let cloudverxsizes = [4, 4, 4, 4]
|
let cloudverxsizes = [4, 4, 4, 4]
|
||||||
cloudvbo <- setupVBO (sum cloudverxsizes)
|
cloudvbo <- setupVBO' (floatSize * sum cloudverxsizes)
|
||||||
(cloudshader, cloudebo) <-
|
(cloudshader, cloudebo) <-
|
||||||
makeShaderEBO "cloud/basic" [vert, frag] cloudverxsizes pmTriangles cloudvbo
|
makeShaderEBO "cloud/basic" [vert, frag] cloudverxsizes pmTriangles cloudvbo
|
||||||
framebuf2 <- newTextureFramebuffer
|
framebuf2 <- newTextureFramebuffer
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
module Shader.Compile (
|
module Shader.Compile (
|
||||||
setupVBO,
|
setupVBO',
|
||||||
setupVBOStatic,
|
setupVBOStatic,
|
||||||
makeShaderEBO,
|
makeShaderEBO,
|
||||||
makeShaderVBO,
|
makeShaderVBO,
|
||||||
@@ -89,17 +89,17 @@ makeShaderUsingVBO s shaderlist sizes pm vbo = do
|
|||||||
vao <- setupVAOUsingVBO sizes vbo
|
vao <- setupVAOUsingVBO sizes vbo
|
||||||
makeShaderUsingVAO s shaderlist pm vao
|
makeShaderUsingVAO s shaderlist pm vao
|
||||||
|
|
||||||
setupVBO :: Int -> IO VBO
|
setupVBO' :: Int -> IO VBO
|
||||||
setupVBO vertexsize = do
|
setupVBO' vertexsize = do
|
||||||
vboname <- mglCreate glCreateBuffers
|
vboname <- mglCreate glCreateBuffers
|
||||||
thePtr <- mallocArray (vertexsize * numDrawableElements)
|
thePtr <- mallocBytes (vertexsize * numDrawableElements)
|
||||||
-- Allocate space
|
-- Allocate space
|
||||||
glNamedBufferData
|
glNamedBufferData
|
||||||
vboname
|
vboname
|
||||||
(fromIntegral $ floatSize * numDrawableElements * vertexsize)
|
(fromIntegral $ numDrawableElements * vertexsize)
|
||||||
nullPtr
|
nullPtr
|
||||||
GL_STREAM_DRAW
|
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 input ptr is assumed to contain the correct amount of data according to
|
||||||
-- the specified number and type of vertices
|
-- the specified number and type of vertices
|
||||||
@@ -249,7 +249,7 @@ setupVBOVAO :: [Int] -> IO (VAO, VBO)
|
|||||||
setupVBOVAO sizes = do
|
setupVBOVAO sizes = do
|
||||||
vaoname <- mglCreate glCreateVertexArrays
|
vaoname <- mglCreate glCreateVertexArrays
|
||||||
glBindVertexArray vaoname
|
glBindVertexArray vaoname
|
||||||
vbo <- setupVBO (sum sizes)
|
vbo <- setupVBO' (floatSize * sum sizes)
|
||||||
--vao <- setupVAOvbo (toFloatVAs sizes) (sum sizes) (vbo ^. vboName)
|
--vao <- setupVAOvbo (toFloatVAs sizes) (sum sizes) (vbo ^. vboName)
|
||||||
vao <- setupVAOUsingVBO (toFloatVAs sizes) vbo
|
vao <- setupVAOUsingVBO (toFloatVAs sizes) vbo
|
||||||
return (vao,vbo)
|
return (vao,vbo)
|
||||||
|
|||||||
Reference in New Issue
Block a user