Cleanup shaders

This commit is contained in:
2025-11-13 17:52:01 +00:00
parent 0ea7af4bdd
commit a7a11ccc03
12 changed files with 142 additions and 205 deletions
+3 -4
View File
@@ -1,8 +1,7 @@
#version 450 core
layout(location = 0) in vec2 pos;
layout(location = 1) in vec2 texPos;
layout (std140, binding = 2) uniform PosTex { vec4 posTex[6]; };
out vec2 vTexPos;
void main() {
gl_Position = vec4(pos, 0.0, 1.0);
vTexPos = texPos;
gl_Position = vec4(posTex[gl_VertexID].xy,0,1);
vTexPos = posTex[gl_VertexID].zw;
}
+1 -1
View File
@@ -9,5 +9,5 @@ void main()
{
fCol = vCol;
fPos = vPos;
fNorm = vNorm ;
fNorm = vNorm;
}
-13
View File
@@ -12,16 +12,3 @@ void main() {
vNorm = unpackSnorm4x8(data[indices[gl_VertexID]].norm);
gl_Position = theMat * vec4(vPos.xyz,1);
}
//layout (location = 0) in vec4 pos;
//layout (location = 1) in vec4 col;
//layout (location = 2) in vec4 norm;
//layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
//out vec4 vCol;
//out vec4 vPos;
//out vec4 vNorm;
//void main() {
// gl_Position = theMat * vec4(pos.xyz,1);
// vCol = col;
// vPos = pos;
// vNorm = norm;
//}
+3 -5
View File
@@ -1,10 +1,8 @@
#version 450 core
layout (location = 0) in vec2 pos;
layout (location = 1) in vec2 texPos;
uniform vec2 winSize;
layout (std140, binding = 2) uniform PosTex { vec4 posTex[6]; };
out vec2 vTexPos;
void main()
{
gl_Position = vec4(pos,0,1);
vTexPos = texPos;
gl_Position = vec4(posTex[gl_VertexID].xy,0,1);
vTexPos = posTex[gl_VertexID].zw;
}
+4 -12
View File
@@ -14,18 +14,15 @@ data RenderData = RenderData
{ _shadWallShader :: GLuint
, _lightingLineShadowShader :: GLuint
, _lightingCapShader :: GLuint
, _lightingTextureShader :: Shader
, _lightingTextureShader :: GLuint
, _ceilingStencilShader :: GLuint
, _alphaDivideShader :: Shader
-- , _windowShader :: Shader
, _alphaDivideShader :: GLuint
, _windowPullShader :: GLuint
, _pullWallShader :: GLuint
, _fullscreenShader :: GLuint
, _transparencyCompShader :: Shader
, _bloomBlurShader :: Shader
, _colorBlurShader :: Shader
, _transparencyCompShader :: GLuint
, _bloomBlurShader :: GLuint
, _barrelShader :: (Shader,VBO)
, _grayscaleShader :: Shader
, _shapeShader :: GLuint
, _shapeEBO :: UintBO
, _silhouetteEBO :: UintBO
@@ -43,10 +40,6 @@ data RenderData = RenderData
, _rboBaseBloom :: GLuint -- RenderbufferObject id
, _matUBO :: GLuint -- BufferObject id
, _lightUBO :: GLuint -- BufferObject id
-- , _winSSBO :: GLuint
-- , _wallSSBO :: GLuint
-- , _shapeSSBO :: GLuint
-- , _ishapeSSBO :: GLuint
, _vboShapes :: VBO
, _floorVBO :: VBO
, _floorShader :: Shader
@@ -56,7 +49,6 @@ data RenderData = RenderData
, _wallVBO :: VBO
, _cloudVBO :: VBO
, _cloudShader :: GLuint
, _screenTextureVAO :: VAO
, _dummyVAO :: VAO
}
+8 -6
View File
@@ -242,9 +242,10 @@ doDrawing' win pdata u = do
-- withArray [0, 0, 0, 0] $
-- glClearNamedFramebufferfv (pdata ^. fboHalf2 . _1 . unFBO) GL_COLOR 0
-- glBlendFunc GL_ONE GL_ONE_MINUS_SRC_ALPHA
drawShader (_bloomBlurShader pdata) 4
glUseProgram (_bloomBlurShader pdata)
glDrawArrays GL_TRIANGLES 0 6
when (cfig ^. gr_bloom) $ do
replicateM_ 2 $
replicateM_ 1 $
pingPongBetween
(_fboHalf1 pdata)
(_fboHalf2 pdata)
@@ -317,8 +318,7 @@ doDrawing' win pdata u = do
ptr
glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _2 . unTO)
glDepthMask GL_FALSE
-- drawShader (pdata ^. alphaDivideShader) 4
glUseProgram (pdata ^. alphaDivideShader . shaderUINT)
glUseProgram (pdata ^. alphaDivideShader)
glDrawArrays GL_TRIANGLES 0 6
----draw lightmap for cloud buffer
glDepthMask GL_TRUE
@@ -370,7 +370,6 @@ doDrawing' win pdata u = do
glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
-- bind base buffer for drawing clouds and bloom
--glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboBase pdata)))
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO)
-- --draw shadowed clouds onto base buffer
@@ -385,7 +384,10 @@ doDrawing' win pdata u = do
glBindTextureUnit 2 (pdata ^. fboCloud . _2 . _1 . unTO)
--glBindTextureUnit 3 (pdata ^. fboCloud . _2 . _2 . unTO)
glBindTextureUnit 3 (pdata ^. fboPos . _2 . unTO)
drawShader (_transparencyCompShader pdata) 4
--drawShader (_transparencyCompShader pdata) 4
glUseProgram (pdata ^. transparencyCompShader)
glDrawArrays GL_TRIANGLES 0 6
--Draw blurred bloom onto base buffer
glEnable GL_BLEND
+33 -21
View File
@@ -20,20 +20,29 @@ import Unsafe.Coerce
sizeFBOs :: Config -> RenderData -> IO RenderData
sizeFBOs cfig rdata =
uncurry (resizeRBO (_rboBaseBloom rdata)) (getWindowSize _gr_world_res cfig)
>> foldM
( uncurry
updateFBOTO3
(getWindowSize _gr_world_res cfig)
GL_NEAREST
GL_NEAREST
GL_RGBA8
GL_RGBA16F -- could possibly recover using depth in a clever way
-- but probably not, because the projection matrix is
-- not always on-center
GL_RGBA16F -- make this smaller?
)
>> uncurry
updateFBOTO3
(getWindowSize _gr_world_res cfig)
GL_NEAREST
GL_NEAREST
GL_RGBA8
GL_RGBA16F -- could possibly recover using depth in a clever way
-- but probably not, because the projection matrix is
-- not always on-center
GL_RGBA16F -- make this smaller?
rdata
[fboBase, fboCloud]
fboBase
>>= flip
( uncurry
updateFBOTO3
(getWindowSize _gr_world_res cfig)
GL_NEAREST
GL_NEAREST
GL_RGBA8
GL_RGBA16F
GL_RGBA16F
)
fboCloud
>>= foldUpdateFBOTO
_gr_world_res
GL_NEAREST
@@ -58,12 +67,15 @@ sizeFBOs cfig rdata =
GL_LINEAR
GL_RGBA16F
[fboHalf1, fboHalf2]
>>= flip (uncurry updateFBOTO2
(getWindowSize _gr_world_res cfig)
GL_NEAREST
GL_NEAREST
GL_RGBA8
GL_RGBA16F)
>>= flip
( uncurry
updateFBOTO2
(getWindowSize _gr_world_res cfig)
GL_NEAREST
GL_NEAREST
GL_RGBA8
GL_RGBA16F
)
fboWindow
where
updateFBOTO' f = uncurry updateFBOTO (getWindowSize f cfig)
@@ -202,8 +214,8 @@ resizeFBOTO (fbo, oldto) xsize ysize minfilt magfilt form = do
checkFBO fbo
return (fbo, TO to1)
initializeTexture2D
:: FBO -> GLenum -> Int -> Int -> GLenum -> GLenum -> GLenum -> IO GLuint
initializeTexture2D ::
FBO -> GLenum -> Int -> Int -> GLenum -> GLenum -> GLenum -> IO GLuint
initializeTexture2D fbo attachpoint x y minfilt magfilt form = do
let xsize' = fromIntegral x
ysize' = fromIntegral y
+11 -37
View File
@@ -31,7 +31,7 @@ preloadRender = do
putStrLn "Number cores available:"
getNumCapabilities >>= print
-- set up uniform buffer object
-- set up uniform buffer objects
putStrLn "Setup UBO"
theUBO <- mglCreate glCreateBuffers
glNamedBufferStorage theUBO 64 nullPtr GL_DYNAMIC_STORAGE_BIT
@@ -43,7 +43,7 @@ preloadRender = do
fulltexbo <- mglCreate glCreateBuffers
let ftsize = fromIntegral $ sizeOf (0::Float) * 6 * 4
withArray cornerList' $ \ptr ->
withArray cornerList $ \ptr ->
glNamedBufferStorage fulltexbo ftsize ptr 0
glBindBufferBase GL_UNIFORM_BUFFER 2 fulltexbo
@@ -121,20 +121,12 @@ preloadRender = do
-- GL_NEAREST_MIPMAP_LINEAR GL_LINEAR ?
initTexture2DArray 50 "data/charMaps/cMap16x32.Custom.png" 2 16 32 256 GL_NEAREST GL_NEAREST
putStrLn "Setup full screen shaders"
(_, screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2, 2]) (concat cornerList)
alphadivideshader <- makeShaderUsingVAO "texture2D/alphaDivide" [vert, frag] pmTriangleStrip screentexturevao
-- (_, screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2, 2]) (concat cornerList)
alphadivideshader <- makeSourcedShader "texture2D/alphaDivide" [vert, frag]
fsShad <- makeSourcedShader "texture/simple" [vert, frag]
transcompshader <-
makeShaderUsingVAO
"fullscreen/transparencyComp"
[vert, frag]
pmTriangleStrip
screentexturevao
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] pmTriangleStrip screentexturevao
colorBlurShad <- makeShaderUsingVAO "texture/colorBlur" [vert, frag] pmTriangleStrip screentexturevao
grayscaleShad <- makeShaderUsingVAO "texture/grayscale" [vert, frag] pmTriangleStrip screentexturevao
lightingTextureShad <-
makeShaderUsingVAO "lighting/texture" [vert, frag] pmTriangleStrip screentexturevao
transcompshader <- makeSourcedShader "fullscreen/transparencyComp" [vert, frag]
bloomBlurShad <- makeSourcedShader "texture/bloomBlur" [vert, frag]
lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag]
barrelShad <- makeShaderVBO "texture/barrel" [vert, geom, frag] (toFloatVAs [2, 2, 2, 1]) pmPoints
-- blank wallShader
putStrLn "Setup floor VBO, shader"
@@ -154,21 +146,12 @@ preloadRender = do
(toFloatVAs [3])
pmTriangles
chasmvbo
-- putStrLn "Setup cloud VBO, shader"
-- let cloudverxsizes = [4, 4, 4]
-- cloudvbo <- setupVBO (floatSize * sum cloudverxsizes)
-- (cloudshader, cloudebo) <-
-- makeShaderEBO "cloud/basic" [vert, frag] (toFloatVAs cloudverxsizes) pmTriangles cloudvbo
framebuf2 <- newTextureFramebuffer
framebuf3 <- newTextureFramebuffer
putStrLn "Setup framebuffers"
rboBaseBloomName <- mglCreate glCreateRenderbuffers
glNamedRenderbufferStorage
rboBaseBloomName
GL_DEPTH24_STENCIL8
800
600
glNamedRenderbufferStorage rboBaseBloomName GL_DEPTH24_STENCIL8 800 600
-- if adding to this list, recall you need to sizeFBOs
fboBaseName <- setupFramebuffer3GivenStencil rboBaseBloomName
@@ -203,9 +186,7 @@ preloadRender = do
, _alphaDivideShader = alphadivideshader
, _lightingTextureShader = lightingTextureShad
, _bloomBlurShader = bloomBlurShad
, _colorBlurShader = colorBlurShad
, _barrelShader = barrelShad
, _grayscaleShader = grayscaleShad
, _fbo2 = framebuf2
, _fbo3 = framebuf3
, _fboHalf1 = fboHalf1Name
@@ -228,20 +209,13 @@ preloadRender = do
, _winVBO = winvbo
, _cloudVBO = cloudvbo
, _cloudShader = cloudshader
, _screenTextureVAO = screentexturevao
-- , _screenTextureVAO = screentexturevao
, _dummyVAO = VAO dummyvao
}
--------------------end preloadRender
cornerList :: [[Float]]
cornerList =
[ [-1, 1, 0, 1]
, [-1, -1, 0, 0]
, [1, 1, 1, 1]
, [1, -1, 1, 0]
]
cornerList' :: [Float]
cornerList' = concat
cornerList :: [Float]
cornerList = concat
[ bl, br, tl
, tl, br, tr
]
+1 -6
View File
@@ -32,10 +32,5 @@ renderDataResizeUpdate cfig rdata = do
(bh, bmid) = BS.breakSubstring "(" bbFrag
(_, btt) = BS.breakSubstring ")" bmid
bbFrag' = BS.append bh $ BS.append (BSC.pack $ '(' : show xsize ++ "," ++ show ysize) btt
bbShad <-
makeByteStringShaderUsingVAO
"bloomBlur"
[(vert, bbVert), (frag, bbFrag')]
pmTriangleStrip
(rdata ^. screenTextureVAO)
bbShad <- makeShaderProgram "bloomBlur" [(vert, bbVert), (frag, bbFrag')]
return rdata'{_bloomBlurShader = bbShad}
+8 -12
View File
@@ -70,6 +70,7 @@ renderLightingNoShadows positiontexture normaltexture lightPoints pdata = do
glStencilOpSeparate GL_FRONT GL_KEEP GL_KEEP GL_INCR_WRAP
glStencilOpSeparate GL_BACK GL_KEEP GL_KEEP GL_DECR_WRAP
flip VFSM.mapM_ (VFSM.fromList lightPoints) $ \(V3 x y z, rad, V3 r g b) -> do
withArray [x,y,z,1,r,g,b,rad] $ glNamedBufferSubData (pdata ^. lightUBO) 0 32
glDepthFunc GL_LESS
-- setup stencil
glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE
@@ -88,14 +89,8 @@ renderLightingNoShadows positiontexture normaltexture lightPoints pdata = do
glBindTextureUnit 1 (normaltexture ^. unTO)
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_TRUE
glStencilFunc GL_EQUAL 0 255
glUseProgram (ltextShad ^. shaderUINT)
glUniform3f 0 x y z
glUniform4f 1 r g b rad
glBindVertexArray $ ltextShad ^. shaderVAO . vaoName
glDrawArrays
(_unPrimitiveMode (_shaderPrimitive ltextShad))
0
(fromIntegral (4 :: Int))
glUseProgram ltextShad
glDrawArrays GL_TRIANGLES 0 6
--cleanup: may not be necessary, depending on what comes after...
glDisable GL_CULL_FACE
glStencilFunc GL_NOTEQUAL 128 255
@@ -200,7 +195,7 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
glDisable GL_CULL_FACE
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_FALSE
glStencilFunc GL_EQUAL 0 255
glUseProgram (ltextShad ^. shaderUINT)
glUseProgram ltextShad
glDrawArrays GL_TRIANGLES 0 6
--cleanup: may not be necessary, depending on what comes after...
-- glDisable GL_STENCIL_TEST
@@ -213,15 +208,16 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
pingPongBetween ::
(FBO, TO) ->
(FBO, TO) ->
Shader ->
GLuint ->
IO ()
pingPongBetween (fb1, to1) (fb2, to2) fs = do
glBindFramebuffer GL_FRAMEBUFFER (_unFBO fb2)
glBindTextureUnit 0 (_unTO to1)
drawShader fs 4
glUseProgram fs
glDrawArrays GL_TRIANGLES 0 6
glBindFramebuffer GL_FRAMEBUFFER (_unFBO fb1)
glBindTextureUnit 0 (_unTO to2)
drawShader fs 4
glDrawArrays GL_TRIANGLES 0 6
renderLayer ::
Layer ->
+2 -18
View File
@@ -4,7 +4,8 @@ module Shader.Compile (
makeShaderEBO,
makeShaderVBO,
makeShaderUsingVBO,
makeByteStringShaderUsingVAO,
makeShaderProgram,
-- makeByteStringShaderUsingVAO,
makeShaderUsingVAO,
setupVAOUsingVBO,
setupEBO,
@@ -131,23 +132,6 @@ setupVBOStatic vertexsize = do
--GL_STATIC_DRAW
return VBO{_vboName = vboname, _vboPtr = thePtr, _vboVertexBytes = vertexsize}
makeByteStringShaderUsingVAO ::
-- | (Arbitrary) name of the shader
String ->
-- | Filetype extensions and shader data
[(GLenum, BS.ByteString)] ->
PrimitiveMode ->
VAO ->
IO Shader
makeByteStringShaderUsingVAO s shaderlist pm vao = do
prog <- makeShaderProgram s shaderlist
return
Shader
{ _shaderUINT = prog
, _shaderVAO = vao
, _shaderPrimitive = pm
}
-- | Takes the VAO from elsewhere
makeShaderUsingVAO ::
-- | First part of the name of the shader
+68 -70
View File
@@ -1504,7 +1504,7 @@ _avMoveSpeed src/Dodge/Data/Creature/Misc.hs 65;" f
_avStrength src/Dodge/Data/Creature/Misc.hs 62;" f
_avatarMaterial src/Dodge/Data/Creature/Misc.hs 61;" f
_avatarPulse src/Dodge/Data/Creature/Misc.hs 60;" f
_barrelShader src/Data/Preload/Render.hs 27;" f
_barrelShader src/Data/Preload/Render.hs 25;" f
_barrelType src/Dodge/Data/Creature/Misc.hs 71;" f
_bdColor src/Dodge/Data/Prop.hs 23;" f
_bdMaxX src/Dodge/Data/Bounds.hs 12;" f
@@ -1522,7 +1522,7 @@ _blPos src/Dodge/Data/Block.hs 26;" f
_blShadows src/Dodge/Data/Block.hs 24;" f
_blWallIDs src/Dodge/Data/Block.hs 22;" f
_blocks src/Dodge/Data/LWorld.hs 125;" f
_bloomBlurShader src/Data/Preload/Render.hs 25;" f
_bloomBlurShader src/Data/Preload/Render.hs 24;" f
_bmColor src/Dodge/Data/Beam.hs 21;" f
_bmDamage src/Dodge/Data/Beam.hs 20;" f
_bmDir src/Dodge/Data/Beam.hs 19;" f
@@ -1588,8 +1588,8 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f
_ceSideEffect src/Dodge/Data/Universe.hs 66;" f
_ceString src/Dodge/Data/Universe.hs 67;" f
_ceilingStencilShader src/Data/Preload/Render.hs 18;" f
_chasmShader src/Data/Preload/Render.hs 54;" f
_chasmVBO src/Data/Preload/Render.hs 53;" f
_chasmShader src/Data/Preload/Render.hs 51;" f
_chasmVBO src/Data/Preload/Render.hs 50;" f
_chasms src/Dodge/Data/CWorld.hs 33;" f
_ciFilter src/Dodge/Data/HUD.hs 25;" f
_ciInvIDs src/Dodge/Data/Combine.hs 9;" f
@@ -1618,10 +1618,9 @@ _clickPos src/Dodge/Data/Input.hs 42;" f
_clickWorldPos src/Dodge/Data/Input.hs 44;" f
_closeButtons src/Dodge/Data/HUD.hs 36;" f
_closeItems src/Dodge/Data/HUD.hs 35;" f
_cloudShader src/Data/Preload/Render.hs 58;" f
_cloudVBO src/Data/Preload/Render.hs 57;" f
_cloudShader src/Data/Preload/Render.hs 55;" f
_cloudVBO src/Data/Preload/Render.hs 54;" f
_clouds src/Dodge/Data/LWorld.hs 96;" f
_colorBlurShader src/Data/Preload/Render.hs 26;" f
_coolEnd src/Dodge/Data/TriggerType.hs 17;" f
_coolSound src/Dodge/Data/Item/Params.hs 22;" f
_coolStart src/Dodge/Data/TriggerType.hs 16;" f
@@ -1749,7 +1748,7 @@ _dsZoning src/Dodge/Data/World.hs 48;" f
_dtLeft src/Dodge/Data/DoubleTree.hs 29;" f
_dtRight src/Dodge/Data/DoubleTree.hs 29;" f
_dtValue src/Dodge/Data/DoubleTree.hs 29;" f
_dummyVAO src/Data/Preload/Render.hs 61;" f
_dummyVAO src/Data/Preload/Render.hs 57;" f
_dusts src/Dodge/Data/LWorld.hs 97;" f
_ebID src/Dodge/Data/EnergyBall/Type.hs 13;" f
_ebPos src/Dodge/Data/EnergyBall.hs 17;" f
@@ -1759,16 +1758,16 @@ _ebVel src/Dodge/Data/EnergyBall.hs 16;" f
_emoMenuOption src/Dodge/Data/Universe.hs 77;" f
_energyBalls src/Dodge/Data/LWorld.hs 104;" f
_fbSize src/Dodge/Data/EnergyBall/Type.hs 12;" f
_fbo2 src/Data/Preload/Render.hs 33;" f
_fbo3 src/Data/Preload/Render.hs 34;" f
_fboBase src/Data/Preload/Render.hs 37;" f
_fboBloom src/Data/Preload/Render.hs 40;" f
_fboCloud src/Data/Preload/Render.hs 38;" f
_fboHalf1 src/Data/Preload/Render.hs 35;" f
_fboHalf2 src/Data/Preload/Render.hs 36;" f
_fboLighting src/Data/Preload/Render.hs 42;" f
_fboPos src/Data/Preload/Render.hs 41;" f
_fboWindow src/Data/Preload/Render.hs 39;" f
_fbo2 src/Data/Preload/Render.hs 30;" f
_fbo3 src/Data/Preload/Render.hs 31;" f
_fboBase src/Data/Preload/Render.hs 34;" f
_fboBloom src/Data/Preload/Render.hs 37;" f
_fboCloud src/Data/Preload/Render.hs 35;" f
_fboHalf1 src/Data/Preload/Render.hs 32;" f
_fboHalf2 src/Data/Preload/Render.hs 33;" f
_fboLighting src/Data/Preload/Render.hs 39;" f
_fboPos src/Data/Preload/Render.hs 38;" f
_fboWindow src/Data/Preload/Render.hs 36;" f
_flItPos src/Dodge/Data/FloorItem.hs 11;" f
_flItRot src/Dodge/Data/FloorItem.hs 11;" f
_flPos src/Dodge/Data/Flame.hs 13;" f
@@ -1782,13 +1781,13 @@ _flboName src/Shader/Data.hs 87;" f
_flboPtr src/Shader/Data.hs 88;" f
_flboStride src/Shader/Data.hs 89;" f
_floorItems src/Dodge/Data/LWorld.hs 127;" f
_floorShader src/Data/Preload/Render.hs 52;" f
_floorVBO src/Data/Preload/Render.hs 51;" f
_floorShader src/Data/Preload/Render.hs 49;" f
_floorVBO src/Data/Preload/Render.hs 48;" f
_foreShapes src/Dodge/Data/LWorld.hs 132;" f
_fsDir src/Dodge/Data/ForegroundShape.hs 14;" f
_fsPos src/Dodge/Data/ForegroundShape.hs 13;" f
_fsSPic src/Dodge/Data/ForegroundShape.hs 15;" f
_fullscreenShader src/Data/Preload/Render.hs 23;" f
_fullscreenShader src/Data/Preload/Render.hs 22;" f
_futureWorlds src/Dodge/Data/World.hs 67;" f
_futureWorlds src/Dodge/Data/World.hs 73;" f
_gameplay_rotate_to_wall src/Dodge/Data/Config.hs 55;" f
@@ -1820,7 +1819,6 @@ _gr_num_shadow_casters src/Dodge/Data/Config.hs 50;" f
_gr_shadow_rendering src/Dodge/Data/Config.hs 45;" f
_gr_shadow_size src/Dodge/Data/Config.hs 46;" f
_gr_world_res src/Dodge/Data/Config.hs 48;" f
_grayscaleShader src/Data/Preload/Render.hs 28;" f
_gsZoning src/Dodge/Data/World.hs 54;" f
_guID src/Dodge/Data/Gust.hs 12;" f
_guPos src/Dodge/Data/Gust.hs 13;" f
@@ -1905,7 +1903,7 @@ _ldtRight src/Dodge/Data/DoubleTree.hs 35;" f
_ldtValue src/Dodge/Data/DoubleTree.hs 33;" f
_leadTargetBy src/Dodge/Data/ActionPlan.hs 115;" f
_lightSources src/Dodge/Data/LWorld.hs 133;" f
_lightUBO src/Data/Preload/Render.hs 45;" f
_lightUBO src/Data/Preload/Render.hs 42;" f
_lightingCapShader src/Data/Preload/Render.hs 16;" f
_lightingLineShadowShader src/Data/Preload/Render.hs 15;" f
_lightingTextureShader src/Data/Preload/Render.hs 17;" f
@@ -1941,7 +1939,7 @@ _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" f
_mapInvItmID src/Dodge/Data/HUD.hs 20;" f
_mapInvOffset src/Dodge/Data/HUD.hs 18;" f
_mapInvZoom src/Dodge/Data/HUD.hs 19;" f
_matUBO src/Data/Preload/Render.hs 44;" f
_matUBO src/Data/Preload/Render.hs 41;" f
_mbAttach src/Dodge/Data/MetaTree.hs 18;" f
_mbTree src/Dodge/Data/MetaTree.hs 18;" f
_mcColor src/Dodge/Data/Machine.hs 34;" f
@@ -2044,7 +2042,7 @@ _phRemoteID src/Dodge/Data/Projectile.hs 41;" f
_phTargetingID src/Dodge/Data/Projectile.hs 42;" f
_pickUpLevel src/Dodge/Layout/Generate.hs 14;" f
_pickUps src/Dodge/Layout/Generate.hs 15;" f
_pictureShaders src/Data/Preload/Render.hs 32;" f
_pictureShaders src/Data/Preload/Render.hs 29;" f
_piercedPoints src/Dodge/Data/Creature/Misc.hs 87;" f
_pjBarrelSpin src/Dodge/Data/Projectile.hs 23;" f
_pjDetonatorID src/Dodge/Data/Projectile.hs 25;" f
@@ -2087,7 +2085,7 @@ _psRoomEff src/Dodge/Data/GenWorld.hs 96;" f
_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 100;" f
_psRot src/Dodge/Data/GenWorld.hs 92;" f
_psSelect src/Dodge/Data/GenWorld.hs 95;" f
_pullWallShader src/Data/Preload/Render.hs 22;" f
_pullWallShader src/Data/Preload/Render.hs 21;" f
_pulseBalls src/Dodge/Data/LWorld.hs 115;" f
_pulseLasers src/Dodge/Data/LWorld.hs 114;" f
_pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f
@@ -2126,7 +2124,7 @@ _rbPos src/Dodge/Data/RadarBlip.hs 17;" f
_rbRad src/Dodge/Data/RadarBlip.hs 16;" f
_rbState src/Dodge/Data/World.hs 43;" f
_rbTime src/Dodge/Data/RadarBlip.hs 14;" f
_rboBaseBloom src/Data/Preload/Render.hs 43;" f
_rboBaseBloom src/Data/Preload/Render.hs 40;" f
_renderData src/Data/Preload.hs 11;" f
_respawnDelay src/Dodge/Data/World.hs 62;" f
_respawnPos src/Dodge/Data/LWorld.hs 145;" f
@@ -2189,7 +2187,7 @@ _scOptions src/Dodge/Data/Universe.hs 84;" f
_scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f
_scSelectionList src/Dodge/Data/Universe.hs 88;" f
_scTitle src/Dodge/Data/Universe.hs 83;" f
_screenTextureVAO src/Data/Preload/Render.hs 60;" f
_screenTextureVAO src/Data/Preload/Render.hs 56;" f
_scrollAmount src/Dodge/Data/Input.hs 40;" f
_scrollItemID src/Dodge/Data/World.hs 68;" f
_scrollItemID src/Dodge/Data/World.hs 77;" f
@@ -2220,9 +2218,9 @@ _shadWallShader src/Data/Preload/Render.hs 14;" f
_shaderPrimitive src/Shader/Data.hs 53;" f
_shaderUINT src/Shader/Data.hs 52;" f
_shaderVAO src/Shader/Data.hs 54;" f
_shapeEBO src/Data/Preload/Render.hs 30;" f
_shapeEBO src/Data/Preload/Render.hs 27;" f
_shapeHalfSize src/Shape/Data.hs 13;" f
_shapeShader src/Data/Preload/Render.hs 29;" f
_shapeShader src/Data/Preload/Render.hs 26;" f
_shellPayload src/Dodge/Data/Item/Combine.hs 101;" f
_shockwaves src/Dodge/Data/LWorld.hs 112;" f
_siColor src/Dodge/Data/SelectionList.hs 47;" f
@@ -2234,7 +2232,7 @@ _siPictures src/Dodge/Data/SelectionList.hs 43;" f
_siWidth src/Dodge/Data/SelectionList.hs 45;" f
_sideEffect src/Loop/Data.hs 13;" f
_sideImpulses src/Dodge/Data/ActionPlan.hs 122;" f
_silhouetteEBO src/Data/Preload/Render.hs 31;" f
_silhouetteEBO src/Data/Preload/Render.hs 28;" f
_skOldPos src/Dodge/Data/Spark.hs 14;" f
_skPos src/Dodge/Data/Spark.hs 13;" f
_skType src/Dodge/Data/Spark.hs 15;" f
@@ -2335,7 +2333,7 @@ _toPlaySounds src/Dodge/Data/World.hs 39;" f
_topBoxSize src/Shape/Data.hs 12;" f
_tptString src/Dodge/Data/Terminal/Status.hs 15;" f
_tractorBeams src/Dodge/Data/LWorld.hs 117;" f
_transparencyCompShader src/Data/Preload/Render.hs 24;" f
_transparencyCompShader src/Data/Preload/Render.hs 23;" f
_trieChildren src/SimpleTrie.hs 12;" f
_trieMVal src/SimpleTrie.hs 11;" f
_triggers src/Dodge/Data/LWorld.hs 126;" f
@@ -2399,7 +2397,7 @@ _vaType src/Shader/Data.hs 68;" f
_vaoName src/Shader/Data.hs 64;" f
_vboName src/Shader/Data.hs 80;" f
_vboPtr src/Shader/Data.hs 81;" f
_vboShapes src/Data/Preload/Render.hs 50;" f
_vboShapes src/Data/Preload/Render.hs 47;" f
_vboVertexBytes src/Shader/Data.hs 82;" f
_vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f
_vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f
@@ -2422,16 +2420,16 @@ _wTime src/Dodge/Data/Item/Params.hs 20;" f
_waitThenAction src/Dodge/Data/ActionPlan.hs 76;" f
_waitThenTimer src/Dodge/Data/ActionPlan.hs 75;" f
_wallDamages src/Dodge/Data/LWorld.hs 119;" f
_wallVBO src/Data/Preload/Render.hs 56;" f
_wallVBO src/Data/Preload/Render.hs 53;" f
_walls src/Dodge/Data/LWorld.hs 118;" f
_wanID src/Dodge/Data/LWorld.hs 158;" f
_wanPos src/Dodge/Data/LWorld.hs 157;" f
_warmMax src/Dodge/Data/TriggerType.hs 19;" f
_warmStart src/Dodge/Data/TriggerType.hs 15;" f
_winVBO src/Data/Preload/Render.hs 55;" f
_winVBO src/Data/Preload/Render.hs 52;" f
_windowPosX src/Dodge/Data/Config.hs 53;" f
_windowPosY src/Dodge/Data/Config.hs 54;" f
_windowPullShader src/Data/Preload/Render.hs 21;" f
_windowPullShader src/Data/Preload/Render.hs 20;" f
_windowX src/Dodge/Data/Config.hs 51;" f
_windowY src/Dodge/Data/Config.hs 52;" f
_wlHeight src/Dodge/Data/Wall.hs 25;" f
@@ -2587,7 +2585,7 @@ attachOnward src/Dodge/Tree/Compose.hs 95;" f
attachOnward' src/Dodge/Tree/Compose.hs 98;" f
attachTree src/Dodge/Tree/Compose.hs 38;" f
attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 75;" f
attribSize src/Shader/Compile.hs 320;" f
attribSize src/Shader/Compile.hs 304;" f
autoAmr src/Dodge/Item/Held/Rod.hs 39;" f
autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 488;" f
autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f
@@ -2641,7 +2639,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f
bgunSound src/Dodge/HeldUse.hs 514;" f
bindFBO src/Render.hs 248;" f
bindFBO src/Render.hs 232;" f
bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
@@ -2697,7 +2695,7 @@ brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 129;" f
btText src/Dodge/Inventory/SelectionList.hs 237;" f
bufferEBO src/Shader/Bind.hs 28;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 454;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 445;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f
bufferShaderLayers src/Shader/Bind.hs 32;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
@@ -2753,7 +2751,7 @@ checkConnection src/Dodge/Inventory/Swap.hs 66;" f
checkDeath src/Dodge/Creature/Update.hs 70;" f
checkDeath' src/Dodge/Creature/Update.hs 73;" f
checkEndGame src/Dodge/Update.hs 766;" f
checkErrorGL src/Shader/Compile.hs 267;" f
checkErrorGL src/Shader/Compile.hs 251;" f
checkFBO src/Framebuffer/Check.hs 6;" f
checkGLError src/GLHelp.hs 14;" f
checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f
@@ -2854,7 +2852,7 @@ compP2A src/Dodge/ShiftPoint.hs 11;" f
compactDraw src/Dodge/LevelGen.hs 94;" f
compactDraw' src/Dodge/LevelGen.hs 105;" f
compactDrawTree src/Dodge/LevelGen.hs 88;" f
compileAndCheckShader src/Shader/Compile.hs 289;" f
compileAndCheckShader src/Shader/Compile.hs 273;" f
composeNode src/Dodge/Tree/Compose.hs 76;" f
composeTree src/Dodge/Tree/Compose.hs 47;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f
@@ -2875,7 +2873,8 @@ copier src/Dodge/Item/Scope.hs 88;" f
copierItemUpdate src/Dodge/Creature/State.hs 131;" f
copyItemToFloor src/Dodge/FloorItem.hs 14;" f
corDoor src/Dodge/Room/Room.hs 385;" f
cornerList src/Preload/Render.hs 244;" f
cornerList src/Preload/Render.hs 226;" f
cornerList' src/Preload/Render.hs 233;" f
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
@@ -3551,7 +3550,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f
getDebugMouseOver src/Dodge/Update.hs 374;" f
getDistortions src/Dodge/Render.hs 466;" f
getDistortions src/Dodge/Render.hs 457;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3702,7 +3701,7 @@ initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialRoomTree src/Dodge/Floor.hs 24;" f
initialWorld src/Dodge/Initialisation.hs 15;" f
initialisePlaying src/Sound.hs 77;" f
initializeGLState src/Preload/Render.hs 262;" f
initializeGLState src/Preload/Render.hs 254;" f
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
initializeTexture2D src/Framebuffer/Update.hs 205;" f
@@ -4020,7 +4019,6 @@ makeBlockDebris src/Dodge/Block/Debris.hs 36;" f
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
makeBullet src/Dodge/HeldUse.hs 979;" f
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeByteStringShaderUsingVAO src/Shader/Compile.hs 134;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
makeColorTermLine src/Dodge/Terminal.hs 111;" f
makeColorTermPara src/Dodge/Terminal.hs 108;" f
@@ -4046,14 +4044,14 @@ makePathBetweenPs src/Dodge/Path.hs 87;" f
makePathUsing src/Dodge/Path.hs 51;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 24;" f
makeSelectionListPictures src/Dodge/Render/List.hs 66;" f
makeShaderEBO src/Shader/Compile.hs 54;" f
makeShaderProgram src/Shader/Compile.hs 253;" f
makeShaderUsingVAO src/Shader/Compile.hs 152;" f
makeShaderUsingVBO src/Shader/Compile.hs 70;" f
makeShaderVBO src/Shader/Compile.hs 33;" f
makeShaderEBO src/Shader/Compile.hs 55;" f
makeShaderProgram src/Shader/Compile.hs 237;" f
makeShaderUsingVAO src/Shader/Compile.hs 136;" f
makeShaderUsingVBO src/Shader/Compile.hs 71;" f
makeShaderVBO src/Shader/Compile.hs 34;" f
makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 11;" f
makeShrapnelAt src/Dodge/Payload.hs 24;" f
makeSourcedShader src/Shader/Compile.hs 173;" f
makeSourcedShader src/Shader/Compile.hs 157;" f
makeSpark src/Dodge/Spark.hs 45;" f
makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f
makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f
@@ -4328,7 +4326,7 @@ pincerP src/Dodge/Creature/Boid.hs 63;" f
pincerP' src/Dodge/Creature/Boid.hs 96;" f
pincerP'' src/Dodge/Creature/Boid.hs 106;" f
pincerP''' src/Dodge/Creature/Boid.hs 77;" f
pingPongBetween src/Render.hs 224;" f
pingPongBetween src/Render.hs 207;" f
pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 330;" f
@@ -4448,7 +4446,7 @@ powlistUpToN' src/Multiset.hs 12;" f
powlistUpToN'' src/Multiset.hs 31;" f
preCritStart src/Dodge/Room/Start.hs 83;" f
prePos src/Quaternion.hs 64;" f
preloadRender src/Preload/Render.hs 32;" f
preloadRender src/Preload/Render.hs 29;" f
premapMaybe src/FoldlHelp.hs 26;" f
prependTwo src/Geometry.hs 177;" f
prettyDT src/Dodge/DoubleTree.hs 258;" f
@@ -4600,13 +4598,13 @@ removeLights src/Dodge/Room/Tutorial.hs 257;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f
renderFlatLighting src/Render.hs 107;" f
renderFlatLighting src/Render.hs 101;" f
renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 237;" f
renderLayer src/Render.hs 221;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 192;" f
renderShadows src/Render.hs 122;" f
renderShadows src/Render.hs 116;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 105;" f
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f
@@ -4806,7 +4804,7 @@ setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f
setRoomInt src/Dodge/Room/Tutorial.hs 91;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 302;" f
setShaderSource src/Shader/Compile.hs 286;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f
setSoundVolume src/Sound.hs 157;" f
setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f
@@ -4815,29 +4813,29 @@ setTiles src/Dodge/Layout.hs 67;" f
setTreeInts src/Dodge/Room/Tutorial.hs 98;" f
setViewDistance src/Dodge/Update/Camera.hs 239;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 471;" f
setViewport src/Dodge/Render.hs 462;" f
setVol src/Dodge/Config.hs 47;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f
setupConLoop src/Loop.hs 103;" f
setupConLoop' src/Loop.hs 193;" f
setupEBO src/Shader/Compile.hs 197;" f
setupEBO src/Shader/Compile.hs 181;" f
setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" f
setupFramebuffer3GivenStencil src/Framebuffer/Setup.hs 62;" f
setupFramebufferGivenStencil src/Framebuffer/Setup.hs 31;" f
setupLoop src/Loop.hs 30;" f
setupShadowFramebuffer src/Framebuffer/Setup.hs 24;" f
setupStaticVBOVAO src/Shader/Compile.hs 103;" f
setupVAOUsingVBO src/Shader/Compile.hs 185;" f
setupVBO src/Shader/Compile.hs 84;" f
setupVBOStatic src/Shader/Compile.hs 120;" f
setupVBOVAO src/Shader/Compile.hs 209;" f
setupVertexAttribPointer src/Shader/Compile.hs 234;" f
setupVertexAttribs src/Shader/Compile.hs 228;" f
setupStaticVBOVAO src/Shader/Compile.hs 104;" f
setupVAOUsingVBO src/Shader/Compile.hs 169;" f
setupVBO src/Shader/Compile.hs 85;" f
setupVBOStatic src/Shader/Compile.hs 121;" f
setupVBOVAO src/Shader/Compile.hs 193;" f
setupVertexAttribPointer src/Shader/Compile.hs 218;" f
setupVertexAttribs src/Shader/Compile.hs 212;" f
setupWorldBounds src/Dodge/Layout.hs 116;" f
sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f
shadVBOptr src/Shader.hs 40;" f
shaderTypeExt src/Shader/Compile.hs 178;" f
shaderTypeExt src/Shader/Compile.hs 162;" f
shapeBounds src/Dodge/Room/Foreground.hs 147;" f
shapePoints src/Dodge/Room/Foreground.hs 144;" f
shapeVerxSize src/Shape/Parameters.hs 5;" f
@@ -5148,7 +5146,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 141;" f
toBothLnk src/Dodge/RoomLink.hs 136;" f
toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 148;" f
toFloatVAs src/Shader/Compile.hs 220;" f
toFloatVAs src/Shader/Compile.hs 204;" f
toLabel src/Dodge/Cleat.hs 16;" f
toMultiset src/Multiset.hs 64;" f
toOnward src/Dodge/Tree/Compose.hs 101;" f
@@ -5446,7 +5444,7 @@ vShape src/Dodge/Placement/Instance/LightSource.hs 93;" f
vToL src/MatrixHelper.hs 56;" f
vToQuat src/Quaternion.hs 42;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
vasTightStride src/Shader/Compile.hs 309;" f
vasTightStride src/Shader/Compile.hs 293;" f
vecBetweenSpeed src/Dodge/Base.hs 146;" f
vecTurnTo src/Dodge/Movement/Turn.hs 19;" f
vert src/Shader/Data.hs 111;" f
@@ -5514,7 +5512,7 @@ windowLine src/Dodge/Placement/Instance/Wall.hs 59;" f
windowXFloat src/Dodge/Data/Config.hs 61;" f
windowYFloat src/Dodge/Data/Config.hs 63;" f
withAlpha src/Color.hs 10;" f
withByteString src/Shader/Compile.hs 338;" f
withByteString src/Shader/Compile.hs 322;" f
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f
wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f
wlIXsNearRect src/Dodge/Zoning/Wall.hs 29;" f