diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 654274dd9..888e3d680 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -73,7 +73,7 @@ preloadRender = do shEBO <- setupEBO shPosVAO -- note the shape shader vao is distinct from the position vao, but they -- share an EBO - shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag] shapeVerxSizes pmTriangles shVBO + shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag] (toFloatVAs shapeVerxSizes) pmTriangles shVBO glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. eboName) --setup silhouette edge VAO @@ -85,11 +85,11 @@ preloadRender = do let wallverxstrd = 8 wallvbo <- setupVBO wallverxstrd winvbo <- setupVBO 8 - windowshader <- makeShaderUsingVBO "wall/blank" [vert, geom, frag] [4, 4] pmPoints winvbo - wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] [4, 4] pmPoints wallvbo + 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" lightingWallShadShad <- - makeShaderUsingVBO "lighting/wallShadow" [vert, geom] [4] pmPoints wallvbo + makeShaderUsingVBO "lighting/wallShadow" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo lightingCapShad <- makeShaderUsingVAO "lighting/cap" [vert, geom] pmTriangles shPosVAO lightingLineShadowShad <- @@ -99,7 +99,7 @@ preloadRender = do shadowcapshader <- makeShaderUsingVAO "shadow/cap" [vert, geom] pmTriangles shPosVAO shadowwallshader <- - makeShaderUsingVBO "shadow/wallShadow" [vert, geom] [4] pmPoints wallvbo + makeShaderUsingVBO "shadow/wallShadow" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo shadowlightshader <- makeShaderFixedVertices "shadow/light" @@ -144,7 +144,7 @@ preloadRender = do putStrLn "Setup floor VBO, shader" let floorverxstrd = 8 floorvbo <- setupVBOStatic floorverxstrd - floorshader <- makeShaderUsingVBO "floor/arrayPos" [vert, frag] [4, 4] pmTriangles floorvbo + floorshader <- makeShaderUsingVBO "floor/arrayPos" [vert, frag] (toFloatVAs [4, 4]) pmTriangles floorvbo initTexture2DArraySquare 40 3 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR "data/normalMaps/diffuseArray.png" initTexture2DArraySquare 41 3 GL_LINEAR_MIPMAP_LINEAR GL_LINEAR "data/normalMaps/normalArray.png" diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index 0dc99d9e7..a0f031738 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -65,7 +65,7 @@ makeShaderEBO :: VBO -> IO (Shader, EBO) makeShaderEBO s shaderlist sizes pm vbo = do - shad <- makeShaderUsingVBO s shaderlist sizes pm vbo + shad <- makeShaderUsingVBO s shaderlist (toFloatVAs sizes) pm vbo ebo <- setupEBO (shad ^. shaderVAO) glVertexArrayElementBuffer (shad ^. shaderVAO . vaoName) (ebo ^. eboName) return @@ -79,12 +79,12 @@ makeShaderUsingVBO :: -- | shader types [GLenum] -> -- | The input vertex sizes - [Int] -> + [VertexAttribute] -> PrimitiveMode -> VBO -> IO Shader makeShaderUsingVBO s shaderlist sizes pm vbo = do - vao <- setupVAOUsingVBO (toFloatVAs sizes) vbo + vao <- setupVAOUsingVBO sizes vbo makeShaderUsingVAO s shaderlist pm vao setupVBO :: Int -> IO VBO