From 5d4234a8f4073e2177046ee826ca00c7f51d2aa9 Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 13 Apr 2023 00:48:14 +0100 Subject: [PATCH] Cmoplete transition to vertex attributes for shader compilation --- src/Preload/Render.hs | 12 ++++++------ src/Shader/Compile.hs | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 34c2271fa..36e00a483 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -110,11 +110,11 @@ preloadRender = do (shadowlightshader ^. shaderVAO) putStrLn "Setup 2D shaders" - bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] [3, 4] pmTriangles - aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] [3, 4, 3] pmTriangles - eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] [3, 4] pmTriangles + bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4]) pmTriangles + aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [3, 4, 3]) pmTriangles + eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] (toFloatVAs [3, 4]) pmTriangles cslist <- - makeShaderVBO "picture/charArray" [vert, frag] [3, 4, 4] pmTriangles + makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 4]) pmTriangles -- initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_NEAREST_MIPMAP_LINEAR GL_LINEAR initTexture2DArray 50 "data/texture/charMapVert16Block.png" 2 16 32 95 GL_NEAREST GL_NEAREST --initTexture2DArray 50 "data/texture/charMapVert8Block.png" 2 8 16 95 GL_NEAREST GL_NEAREST @@ -130,7 +130,7 @@ preloadRender = do grayscaleShad <- makeShaderUsingVAO "texture/grayscale" [vert, frag] pmTriangleStrip screentexturevao lightingTextureShad <- makeShaderUsingVAO "lighting/texture" [vert, frag] pmTriangleStrip screentexturevao - barrelShad <- makeShaderVBO "texture/barrel" [vert, geom, frag] [2, 2, 2, 1] pmPoints + barrelShad <- makeShaderVBO "texture/barrel" [vert, geom, frag] (toFloatVAs [2, 2, 2, 1]) pmPoints -- blank wallShader putStrLn "Setup floor VBO, shader" let floorverxstrd = 8 @@ -143,7 +143,7 @@ preloadRender = do let cloudverxsizes = [4, 4, 4, 4] cloudvbo <- setupVBO (floatSize * sum cloudverxsizes) (cloudshader, cloudebo) <- - makeShaderEBO "cloud/basic" [vert, frag] cloudverxsizes pmTriangles cloudvbo + makeShaderEBO "cloud/basic" [vert, frag] (toFloatVAs cloudverxsizes) pmTriangles cloudvbo framebuf2 <- newTextureFramebuffer framebuf3 <- newTextureFramebuffer diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index e375a57f1..74155d273 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -41,12 +41,12 @@ makeShaderVBO :: -- | shader types [GLenum] -> -- | The input vertex sizes - [Int] -> + [VertexAttribute] -> PrimitiveMode -> IO (Shader, VBO) makeShaderVBO s shaderlist sizes pm = do prog <- makeSourcedShader s shaderlist - (vao, vbo) <- setupVBOVAO (toFloatVAs sizes) + (vao, vbo) <- setupVBOVAO (sizes) return ( Shader { _shaderUINT = prog @@ -62,12 +62,12 @@ makeShaderEBO :: -- | shader types [GLenum] -> -- | The input vertex sizes - [Int] -> + [VertexAttribute] -> PrimitiveMode -> VBO -> IO (Shader, EBO) makeShaderEBO s shaderlist sizes pm vbo = do - shad <- makeShaderUsingVBO s shaderlist (toFloatVAs sizes) pm vbo + shad <- makeShaderUsingVBO s shaderlist sizes pm vbo ebo <- setupEBO (shad ^. shaderVAO) glVertexArrayElementBuffer (shad ^. shaderVAO . vaoName) (ebo ^. eboName) return