Continue shader refactor

This commit is contained in:
2023-04-13 00:43:01 +01:00
parent cd46998e05
commit f104b24e90
7 changed files with 40 additions and 39 deletions
+8 -10
View File
@@ -15,7 +15,6 @@ import Foreign
import Framebuffer.Setup
import GLHelp
import Graphics.GL.Core45
import Shader
import Shader.AuxAddition
import Shader.Compile
import Shader.Data
@@ -68,7 +67,7 @@ preloadRender = do
-- setup shape geometry/cap VBO and two VAOs
putStrLn "Setup shape VBO, VAO, EBO"
shVBO <- setupVBO' (floatSize * 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 +82,8 @@ preloadRender = do
putStrLn "Setup wall/windows VBO, VAO, EBO, shader"
let wallverxstrd = 8
wallvbo <- setupVBO' (floatSize * wallverxstrd)
winvbo <- setupVBO' (floatSize * 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"
@@ -101,15 +100,14 @@ preloadRender = do
shadowwallshader <-
makeShaderUsingVBO "shadow/wallShadow" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo
shadowlightshader <-
makeShaderFixedVertices
makeStaticShader
"shadow/light"
[vert, geom, frag]
[1]
1
[VertexAttribute 1 GL_BYTE GL_FALSE 0]
([1] :: [GLbyte])
pmPoints
shadowcombineshader <- makeShaderUsingVAO "shadow/combine" [vert, geom, frag] pmPoints
(shadowlightshader ^. _1 . shaderVAO)
poke (shadVBOptr shadowlightshader) 1
(shadowlightshader ^. shaderVAO)
putStrLn "Setup 2D shaders"
bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] [3, 4] pmTriangles
@@ -143,7 +141,7 @@ preloadRender = do
putStrLn "Setup cloud VBO, shader"
let cloudverxsizes = [4, 4, 4, 4]
cloudvbo <- setupVBO' (floatSize * sum cloudverxsizes)
cloudvbo <- setupVBO (floatSize * sum cloudverxsizes)
(cloudshader, cloudebo) <-
makeShaderEBO "cloud/basic" [vert, frag] cloudverxsizes pmTriangles cloudvbo
framebuf2 <- newTextureFramebuffer