Simplify shader records

This commit is contained in:
2025-11-13 14:57:46 +00:00
parent 56aa8c6697
commit 0ea7af4bdd
4 changed files with 19 additions and 52 deletions
+5 -6
View File
@@ -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
}
+6 -24
View File
@@ -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
+6 -20
View File
@@ -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
+2 -2
View File
@@ -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)