Use vertex pulling for ceiling stencil

This commit is contained in:
2025-11-10 19:15:07 +00:00
parent 1f01147821
commit 1a85d9d562
3 changed files with 21 additions and 16 deletions
+3 -12
View File
@@ -136,22 +136,13 @@ doDrawing' win pdata u = do
glCullFace GL_BACK
unless (debugOn Remove_LOS cfig) $ do
glUseProgram (pdata ^. ceilingStencilShader . shaderUINT)
-- glProgramUniform3f
-- (pdata ^. ceilingStencilShader . shaderUINT)
-- 0
-- vfx
-- vfy
-- 20
-- glProgramUniform1f
-- (pdata ^. ceilingStencilShader . shaderUINT)
-- 1
-- 1000 -- this should be the furthest on screen distance from the viewpoint
glBindVertexArray $ pdata ^. ceilingStencilShader . shaderVAO . vaoName
-- glBindVertexArray $ pdata ^. ceilingStencilShader . shaderVAO . vaoName
glBindVertexArray $ pdata ^. dummyVAO . vaoName
glEnable GL_DEPTH_CLAMP
glDrawArrays
(_unPrimitiveMode $ pdata ^. ceilingStencilShader . shaderPrimitive)
0
(fromIntegral trueNWalls)
(fromIntegral (trueNWalls * 6))
glDisable GL_DEPTH_CLAMP
glStencilMask 127 -- to alter last seven bits
glStencilOp GL_KEEP GL_KEEP GL_KEEP
+4 -2
View File
@@ -88,8 +88,10 @@ preloadRender = do
makeShaderUsingVAO "lighting/cap" [vert, geom] pmTriangles shPosVAO
lightingLineShadowShad <-
makeShaderUsingVAO "lighting/lineShadow" [vert, geom] pmLinesAdjacency shedgevao
ceilingstencilshader <-
makeShaderUsingVBO "ceiling/stencil" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo
ceilingstencilshader <- makeShaderUsingVAO "ceiling/stencil" [vert] pmTriangles
(VAO dummyvao)
-- makeShaderUsingVBO "ceiling/stencil" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo
putStrLn "Setup 2D shaders"
bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4]) pmTriangles