From 0ea7af4bddd82fb95e7b3ba0728d98d8a6373364 Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 13 Nov 2025 14:57:46 +0000 Subject: [PATCH] Simplify shader records --- src/Data/Preload/Render.hs | 11 +++++------ src/Dodge/Render.hs | 30 ++++++------------------------ src/Preload/Render.hs | 26 ++++++-------------------- src/Render.hs | 4 ++-- 4 files changed, 19 insertions(+), 52 deletions(-) diff --git a/src/Data/Preload/Render.hs b/src/Data/Preload/Render.hs index 972e59809..a5d119f5e 100644 --- a/src/Data/Preload/Render.hs +++ b/src/Data/Preload/Render.hs @@ -12,10 +12,10 @@ import Shader.Data data RenderData = RenderData { _shadWallShader :: GLuint - , _lightingLineShadowShader :: Shader - , _lightingCapShader :: Shader + , _lightingLineShadowShader :: GLuint + , _lightingCapShader :: GLuint , _lightingTextureShader :: Shader - , _ceilingStencilShader :: Shader + , _ceilingStencilShader :: GLuint , _alphaDivideShader :: Shader -- , _windowShader :: Shader , _windowPullShader :: GLuint @@ -26,7 +26,7 @@ data RenderData = RenderData , _colorBlurShader :: Shader , _barrelShader :: (Shader,VBO) , _grayscaleShader :: Shader - , _shapeShader :: Shader + , _shapeShader :: GLuint , _shapeEBO :: UintBO , _silhouetteEBO :: UintBO , _pictureShaders :: MV.MVector (PrimState IO) (Shader,VBO) @@ -55,8 +55,7 @@ data RenderData = RenderData , _winVBO :: VBO , _wallVBO :: VBO , _cloudVBO :: VBO - , _cloudShader :: Shader --- , _cloudEBO :: UintBO + , _cloudShader :: GLuint , _screenTextureVAO :: VAO , _dummyVAO :: VAO } diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index a36108684..ff1672ea2 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -121,13 +121,10 @@ doDrawing' win pdata u = do glEnable GL_CULL_FACE glCullFace GL_BACK unless (debugOn Remove_LOS cfig) $ do - glUseProgram (pdata ^. ceilingStencilShader . shaderUINT) + glUseProgram (pdata ^. ceilingStencilShader) glBindVertexArray $ pdata ^. dummyVAO . vaoName glEnable GL_DEPTH_CLAMP - glDrawArrays - (_unPrimitiveMode $ pdata ^. ceilingStencilShader . shaderPrimitive) - 0 - (fromIntegral (trueNWalls * 6)) + glDrawArrays GL_TRIANGLES 0 (fromIntegral (trueNWalls * 6)) glDisable GL_DEPTH_CLAMP glStencilMask 127 -- to alter last seven bits glStencilOp GL_KEEP GL_KEEP GL_KEEP @@ -152,7 +149,7 @@ doDrawing' win pdata u = do glDrawArrays GL_TRIANGLES 0 (fromIntegral trueNWalls * 6) --draw object shapes onto base buffer let fs = _shapeShader pdata - glUseProgram (_shaderUINT fs) + glUseProgram fs glDrawArrays GL_TRIANGLES 0 (fromIntegral nIndices) -- draw chasm shader blocking floor glUseProgram (pdata ^. chasmShader . shaderUINT) @@ -226,15 +223,8 @@ doDrawing' win pdata u = do -- rethought, either do another pass and write just the depth or even remove -- the layer entirely glBlendFuncSeparate GL_ZERO GL_ONE GL_CONSTANT_ALPHA GL_ONE_MINUS_SRC_ALPHA - glUseProgram (pdata ^. cloudShader . shaderUINT) - glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName + glUseProgram (pdata ^. cloudShader) glDrawArrays GL_TRIANGLES 0 (fromIntegral nCloudVs * 6) - --glDrawArrays GL_TRIANGLES 0 6 - -- glDrawElements - -- (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) - -- (fromIntegral nCloudIs) - -- GL_UNSIGNED_INT - -- nullPtr glDepthMask GL_TRUE --setup downscale viewport for blurring bloom @@ -275,15 +265,8 @@ doDrawing' win pdata u = do (pdata ^. fboCloud . _1 . unFBO) GL_COLOR 0 - glUseProgram (pdata ^. cloudShader . shaderUINT) - glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName + glUseProgram (pdata ^. cloudShader) glDrawArrays GL_TRIANGLES 0 (fromIntegral nCloudVs * 6) - --glDrawArrays GL_TRIANGLES 0 6 - ---- glDrawElements - ---- (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) - ---- (fromIntegral nCloudIs) - ---- GL_UNSIGNED_INT - ---- nullPtr -- glEnable GL_CULL_FACE -- glEnable GL_DEPTH_CLAMP -- glCullFace GL_BACK @@ -308,8 +291,7 @@ doDrawing' win pdata u = do -- and sum the normals weighted by alpha --glBlendFunci 2 GL_SRC_ALPHA GL_ONE glBlendFunci 2 GL_SRC_ALPHA GL_ONE - glUseProgram (pdata ^. cloudShader . shaderUINT) - glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName + glUseProgram (pdata ^. cloudShader) -- glDepthMask GL_TRUE glDrawArrays GL_TRIANGLES 0 (fromIntegral nCloudVs * 6) --glDrawArrays GL_TRIANGLES 0 6 diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index a40946c2e..ca23dd8fa 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -1,9 +1,6 @@ --{-# LANGUAGE TemplateHaskell #-} --{-# OPTIONS_GHC -Wno-unused-top-binds #-} -module Preload.Render ( - preloadRender, - -- cleanUpRenderPreload, -) where +module Preload.Render (preloadRender) where import Control.Concurrent --import Control.Lens @@ -95,27 +92,16 @@ preloadRender = do dummyvao <- mglCreate glGenVertexArrays - --winpull <- makeShaderUsingVAO "pull/window" [vert, frag] pmTriangles (VAO dummyvao) winpull <- makeSourcedShader "pull/window" [vert, frag] wallpull <- makeSourcedShader "pull/wall" [vert, frag] - - shapeshader <- - makeShaderUsingVAO "shape/basic" [vert, frag] pmTriangles (VAO dummyvao) - - cloudshader <- makeShaderUsingVAO "pull/cloud" [vert, frag] pmTriangles (VAO dummyvao) + shapeshader <- makeSourcedShader "shape/basic" [vert, frag] + cloudshader <- makeSourcedShader "pull/cloud" [vert, frag] putStrLn "Setup lighting shaders" shadwallshader <- makeSourcedShader "lighting/wallShadow" [vert] - lightingCapShad <- - makeShaderUsingVAO "lighting/cap" [vert] pmTriangles (VAO dummyvao) - lightingLineShadowShad <- - makeShaderUsingVAO "lighting/lineShadow" [vert] pmTriangles (VAO dummyvao) - ceilingstencilshader <- - makeShaderUsingVAO - "ceiling/stencil" - [vert] - pmTriangles - (VAO dummyvao) + lightingCapShad <- makeSourcedShader "lighting/cap" [vert] + lightingLineShadowShad <- makeSourcedShader "lighting/lineShadow" [vert] + ceilingstencilshader <- makeSourcedShader "ceiling/stencil" [vert] putStrLn "Setup 2D shaders" bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4]) pmTriangles diff --git a/src/Render.hs b/src/Render.hs index 2445727d8..8d55399cc 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -182,12 +182,12 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li GeoObjShads -> do --draw silhouette shadows glEnable GL_DEPTH_CLAMP - glUseProgram (_shaderUINT llinesShad) + glUseProgram llinesShad glDrawArrays GL_TRIANGLES 0 ((fromIntegral nSils * 6) `div` 4) --draw caps on the near plane as required glEnable GL_CULL_FACE glCullFace GL_BACK - glUseProgram (_shaderUINT lcapShad) + glUseProgram lcapShad -- glUniform3f 0 x y z -- glUniform4f 1 r g b rad -- glFrontFace(GL_CW)