Simplify shader records
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user