Work towards using vertex pulling for lighting caps, alignment issues

This commit is contained in:
2025-11-11 12:33:33 +00:00
parent 36d5edc0a6
commit a65a1cab93
9 changed files with 173 additions and 100 deletions
+44 -7
View File
@@ -1,11 +1,48 @@
#version 450 core
layout (location = 0) in vec4 position;
struct PosColNorm { vec4 pos; vec4 col; vec4 norm; };
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
uniform vec3 lightPos;
uniform vec4 lumRad;
out float drawbit;
void main()
layout (std430, binding = 3) readonly buffer Data { PosColNorm data[]; };
layout (std430, binding = 4) readonly buffer Indices { uint indices[]; };
layout(location=0)uniform vec3 lightPos;
layout(location=1)uniform vec4 lumRad;
vec4 projNear (vec4 pos)
{
gl_Position = vec4(position.xyz,1);
drawbit = position.w;
// note we project to a specific height
// this is quite brittle, not ideal
vec3 dir = pos.xyz - lightPos ;
float a = (100 - pos.z) / dir.z ;
vec2 xy = (pos.xyz + a * dir).xy ;
return vec4 ( xy, 100 , 1) ;
}
vec4 tris[3] =
{vec4(0,0,0,1)
,vec4(1,1,0,1)
,vec4(0,1,0,1)
};
bool ztest (vec4 p) {return p.z - lightPos.z > 0;}
void main() {
int j = gl_VertexID/3;
int i1 = j * 3;
uint t = indices[gl_VertexID];
//uint t = gl_VertexID;
gl_Position = tris[t];
//uint t = gl_VertexID % 3;
vec4 p = data[indices[gl_VertexID]].pos;
// gl_Position = (p.w == 1
// && ztest(data[indices[i1]].pos)
// && ztest(data[indices[i1+1]].pos)
// && ztest(data[indices[i1+2]].pos)
// ? theMat * projNear(p)
// : vec4(1,1,1,0)
// );
}
//layout (location = 0) in vec4 position;
//layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
//uniform vec3 lightPos;
//uniform vec4 lumRad;
//out float drawbit;
//void main()
//{
// gl_Position = vec4(position.xyz,1);
// drawbit = position.w;
//}
-5
View File
@@ -1,9 +1,4 @@
#version 450 core
//layout (location = 0) in vec4 poss;
//void main()
//{
// gl_Position = poss;
//}
struct PosTex { vec4 pospos; vec4 texang; };
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
layout (std430, binding = 2) readonly buffer Pos { PosTex data[]; };
+2
View File
@@ -44,6 +44,8 @@ data RenderData = RenderData
, _matUBO :: GLuint -- BufferObject id
, _winSSBO :: GLuint
, _wallSSBO :: GLuint
, _shapeSSBO :: GLuint
, _ishapeSSBO :: GLuint
-- , _lightsUBO :: GLuint -- BufferObject id
, _vboWindows :: VBO
, _vboShapes :: VBO
+10
View File
@@ -116,6 +116,16 @@ doDrawing' win pdata u = do
glNamedBufferSubData (pdata ^. wallSSBO) 0
(fromIntegral $ trueNWalls * sizeOf (0::Float) * 8)
(pdata ^. wallVBO . vboPtr)
glNamedBufferSubData (pdata ^. shapeSSBO) 0
-- (fromIntegral $ nShapeVs * (sizeOf (0::Float)*8 + sizeOf (0::Word8)*4))
(fromIntegral $ nShapeVs * (sizeOf (0::Float)*12))
(pdata ^. vboShapes . vboPtr)
withArray [0::GLuint,1,2] $
glNamedBufferSubData (pdata ^. ishapeSSBO) 0
(fromIntegral $ 3 * (sizeOf (0::GLuint)))
-- glNamedBufferSubData (pdata ^. ishapeSSBO) 0
-- (fromIntegral $ nIndices * (sizeOf (0::GLushort)))
-- (pdata ^. shapeEBO . eboPtr)
setViewport _gr_world_res cfig
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO)
glDepthMask GL_TRUE
+13 -1
View File
@@ -49,6 +49,15 @@ preloadRender = do
glNamedBufferStorage wallssbo (fromIntegral wallssbosize) nullPtr GL_DYNAMIC_STORAGE_BIT
glBindBufferBase GL_SHADER_STORAGE_BUFFER 2 wallssbo
shapessbo <- mglCreate glCreateBuffers
let shapessbosize = fromIntegral (sizeOf (0::Float) * 12) * 65536
glNamedBufferStorage shapessbo shapessbosize nullPtr GL_DYNAMIC_STORAGE_BIT
glBindBufferBase GL_SHADER_STORAGE_BUFFER 3 shapessbo
ishapessbo <- mglCreate glCreateBuffers
let ishapessbosize = fromIntegral (sizeOf (0::GLushort) * 65536)
glNamedBufferStorage ishapessbo ishapessbosize nullPtr GL_DYNAMIC_STORAGE_BIT
glBindBufferBase GL_SHADER_STORAGE_BUFFER 4 ishapessbo
dummyvao <- mglCreate glGenVertexArrays
winpull <- makeShaderUsingVAO "pull/window" [vert,frag] pmTriangles (VAO dummyvao)
@@ -86,7 +95,8 @@ preloadRender = do
--makeShaderUsingVBO "lighting/wallShadow" [vert, geom] (toFloatVAs [4]) pmPoints wallvbo
makeShaderUsingVAO "lighting/wallShadow" [vert] pmTriangles (VAO dummyvao)
lightingCapShad <-
makeShaderUsingVAO "lighting/cap" [vert, geom] pmTriangles shPosVAO
--makeShaderUsingVAO "lighting/cap" [vert, geom] pmTriangles shPosVAO
makeShaderUsingVAO "lighting/cap" [vert] pmTriangles (VAO dummyvao)
lightingLineShadowShad <-
makeShaderUsingVAO "lighting/lineShadow" [vert, geom] pmLinesAdjacency shedgevao
@@ -214,6 +224,8 @@ preloadRender = do
, _matUBO = theUBO
, _winSSBO = winssbo
, _wallSSBO = wallssbo
, _shapeSSBO = shapessbo
, _ishapeSSBO = ishapessbo
-- , _lightsUBO = lightsubo
, _vboWindows = winvbo
, _vboShapes = shVBO
+15 -6
View File
@@ -197,12 +197,21 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
glCullFace GL_FRONT
glUseProgram (_shaderUINT lcapShad)
glUniform3f 0 x y z
glBindVertexArray $ lcapShad ^. shaderVAO . vaoName --Just (_vao $ _shadVAO lcapShad)
glDrawElements
(_unPrimitiveMode $ _shaderPrimitive lcapShad)
(fromIntegral nCaps)
GL_UNSIGNED_SHORT
nullPtr
glUniform4f 1 r g b rad
--glBindVertexArray $ lcapShad ^. shaderVAO . vaoName --Just (_vao $ _shadVAO lcapShad)
glBindVertexArray $ pdata ^. dummyVAO . vaoName
glFrontFace(GL_CW)
glDrawArrays
GL_TRIANGLES
0
3
--(fromIntegral nCaps)
glFrontFace(GL_CCW)
--glDrawElements
-- (_unPrimitiveMode $ _shaderPrimitive lcapShad)
-- (fromIntegral nCaps)
-- GL_UNSIGNED_SHORT
-- nullPtr
glDisable GL_DEPTH_CLAMP
_ -> return ()
--draw lightmap itself
+2 -2
View File
@@ -446,7 +446,7 @@ pokeJustV ::
pokeJustV xdata cp col ptr nv sh = do
pokeByteOff ptr (nv * shapeVerxSize) (V4 x y z xdata)
pokeByteOff ptr (nv *shapeVerxSize + 4 * floatSize) (toColor8 col)
pokeByteOff ptr (nv *shapeVerxSize + 4 * (floatSize + ubyteSize)) (V4 nx ny nz 1)
pokeByteOff ptr (nv *shapeVerxSize + 8 * floatSize) (V4 nx ny nz 1)
return (nv + 1)
where
V3 x y z = sh
@@ -464,7 +464,7 @@ pokeFlatV ::
pokeFlatV xdata norm col ptr nv sh = do
pokeByteOff ptr (nv * shapeVerxSize) (V4 x y z xdata)
pokeByteOff ptr (nv *shapeVerxSize + 4 * floatSize) (toColor8 col)
pokeByteOff ptr (nv *shapeVerxSize + 4 * (floatSize + ubyteSize)) (V4 nx ny nz 1)
pokeByteOff ptr (nv *shapeVerxSize + 8 * floatSize) (V4 nx ny nz 1)
return (nv + 1)
where
V3 x y z = sh
+5 -4
View File
@@ -1,19 +1,20 @@
module Shape.Parameters
module Shape.Parameters
(shapeVerxSize,shapeVerxAttributes)
where
import Shader.Parameters
import Shader.Data
import Data.Word
--import Data.Word
import Foreign.Storable
import Graphics.GL.Core45
shapeVerxSize :: Int
shapeVerxSize = sizeOf (0 :: Float) * 8 + 4 * sizeOf (0 :: Word8)
shapeVerxSize = sizeOf (0 :: Float) * 12
shapeVerxAttributes :: [VertexAttribute]
shapeVerxAttributes =
[VertexAttribute 4 GL_FLOAT GL_FALSE 0
,VertexAttribute 4 GL_UNSIGNED_BYTE GL_TRUE (fromIntegral (4 :: Int) * fromIntegral floatSize)
,VertexAttribute 4 GL_FLOAT GL_FALSE (fromIntegral (4 :: Int) * fromIntegral (floatSize + ubyteSize))
,VertexAttribute 4 GL_FLOAT GL_FALSE (fromIntegral (8 :: Int) * fromIntegral (floatSize))
]
+82 -75
View File
@@ -92,6 +92,7 @@ BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 178;" C
BLOWTORCH src/Dodge/Data/Item/Combine.hs 165;" C
BLUE src/Color/Data.hs 14;" C
BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 148;" C
BOType src/Shader/Data.hs 86;" t
BQuad src/Geometry/Bezier.hs 9;" t
BRAINHAT src/Dodge/Data/Item/Combine.hs 125;" C
BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 133;" C
@@ -355,7 +356,7 @@ DropItem src/Dodge/Data/ActionPlan.hs 38;" C
DudPayload src/Dodge/Data/Payload.hs 11;" C
Dungeon src/Dodge/Data/Scenario.hs 66;" C
Dust src/Dodge/Data/Cloud.hs 27;" t
EBO src/Shader/Data.hs 86;" t
EBO src/Shader/Data.hs 94;" t
EBSound src/Dodge/Data/SoundOrigin.hs 39;" C
ECW src/Dodge/Material/Damage.hs 14;" t
ELEPHANTGUN src/Dodge/Data/Item/Combine.hs 157;" C
@@ -435,6 +436,7 @@ FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 50;" C
Flee src/Dodge/Data/ActionPlan.hs 143;" C
Flesh src/Dodge/Data/Material.hs 17;" C
FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 14;" C
FloatBO src/Shader/Data.hs 88;" t
FloatConst src/Dodge/Data/FloatFunction.hs 15;" C
FloatDistLinearNearFar src/Dodge/Data/FloatFunction.hs 13;" C
FloatFOV src/Dodge/Data/FloatFunction.hs 11;" C
@@ -988,7 +990,7 @@ PosInf src/Dodge/Data/CardinalPoint.hs 44;" C
PosRooms src/Dodge/Tree/Shift.hs 28;" t
Posture src/Dodge/Data/Creature/Stance.hs 33;" t
PreloadData src/Data/Preload.hs 10;" t
PrimitiveMode src/Shader/Data.hs 97;" t
PrimitiveMode src/Shader/Data.hs 105;" t
PrintMaterial src/Dodge/Data/AmmoType.hs 12;" C
Prison src/Dodge/Data/Scenario.hs 65;" C
Projectile src/Dodge/Data/Projectile.hs 15;" t
@@ -1149,7 +1151,7 @@ SetLSCol src/Dodge/Data/WorldEffect.hs 24;" C
SetTrigger src/Dodge/Data/WorldEffect.hs 22;" C
ShadNum src/Picture/Data.hs 33;" t
Shader src/Shader/Data.hs 51;" t
ShaderTexture src/Shader/Data.hs 92;" t
ShaderTexture src/Shader/Data.hs 100;" t
ShadowFidelity src/Shape/Data.hs 19;" t
ShadowRendering src/Dodge/Data/Config.hs 103;" t
Shape src/Shape/Data.hs 48;" t
@@ -1456,6 +1458,7 @@ WeaponScopeSF src/Dodge/Data/ComposedItem.hs 19;" C
WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 20;" C
West src/Dodge/Data/CardinalPoint.hs 10;" C
West8 src/Dodge/Data/CardinalPoint.hs 34;" C
WindowPoss src/Shader/Data.hs 86;" C
WlID src/Dodge/Data/CrWlID.hs 10;" C
Wood src/Dodge/Data/Material.hs 11;" C
World src/Dodge/Data/World.hs 34;" t
@@ -1502,7 +1505,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 26;" f
_barrelShader src/Data/Preload/Render.hs 27;" 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
@@ -1520,7 +1523,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 24;" f
_bloomBlurShader src/Data/Preload/Render.hs 25;" 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
@@ -1534,6 +1537,9 @@ _bmPoints src/Dodge/Data/Beam.hs 22;" f
_bmPos src/Dodge/Data/Beam.hs 18;" f
_bmRange src/Dodge/Data/Beam.hs 24;" f
_bmType src/Dodge/Data/Beam.hs 27;" f
_boName src/Shader/Data.hs 89;" f
_boPtr src/Shader/Data.hs 90;" f
_boType src/Shader/Data.hs 91;" f
_boffEff src/Dodge/Data/Button.hs 21;" f
_bonEff src/Dodge/Data/Button.hs 20;" f
_bounceTolerance src/Dodge/Data/Projectile.hs 46;" f
@@ -1586,8 +1592,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 51;" f
_chasmVBO src/Data/Preload/Render.hs 50;" f
_chasmShader src/Data/Preload/Render.hs 53;" f
_chasmVBO src/Data/Preload/Render.hs 52;" 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
@@ -1616,11 +1622,11 @@ _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
_cloudEBO src/Data/Preload/Render.hs 56;" f
_cloudShader src/Data/Preload/Render.hs 55;" f
_cloudVBO src/Data/Preload/Render.hs 54;" f
_cloudEBO src/Data/Preload/Render.hs 58;" f
_cloudShader src/Data/Preload/Render.hs 57;" f
_cloudVBO src/Data/Preload/Render.hs 56;" f
_clouds src/Dodge/Data/LWorld.hs 96;" f
_colorBlurShader src/Data/Preload/Render.hs 25;" 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
@@ -1748,28 +1754,28 @@ _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 58;" f
_dummyVAO src/Data/Preload/Render.hs 60;" 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
_ebTimer src/Dodge/Data/EnergyBall.hs 18;" f
_ebType src/Dodge/Data/EnergyBall.hs 19;" f
_ebVel src/Dodge/Data/EnergyBall.hs 16;" f
_eboName src/Shader/Data.hs 87;" f
_eboPtr src/Shader/Data.hs 88;" f
_eboName src/Shader/Data.hs 95;" f
_eboPtr src/Shader/Data.hs 96;" 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 32;" f
_fbo3 src/Data/Preload/Render.hs 33;" f
_fboBase src/Data/Preload/Render.hs 36;" f
_fboBloom src/Data/Preload/Render.hs 39;" f
_fboCloud src/Data/Preload/Render.hs 37;" f
_fboHalf1 src/Data/Preload/Render.hs 34;" f
_fboHalf2 src/Data/Preload/Render.hs 35;" f
_fboLighting src/Data/Preload/Render.hs 41;" f
_fboPos src/Data/Preload/Render.hs 40;" f
_fboWindow src/Data/Preload/Render.hs 38;" 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
_flItPos src/Dodge/Data/FloorItem.hs 11;" f
_flItRot src/Dodge/Data/FloorItem.hs 11;" f
_flPos src/Dodge/Data/Flame.hs 13;" f
@@ -1780,13 +1786,13 @@ _flankTarget src/Dodge/Data/ActionPlan.hs 129;" f
_flares src/Dodge/Data/LWorld.hs 108;" f
_flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f
_floorItems src/Dodge/Data/LWorld.hs 127;" f
_floorShader src/Data/Preload/Render.hs 49;" f
_floorVBO src/Data/Preload/Render.hs 48;" f
_floorShader src/Data/Preload/Render.hs 51;" f
_floorVBO src/Data/Preload/Render.hs 50;" 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 22;" f
_fullscreenShader src/Data/Preload/Render.hs 23;" 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
@@ -1818,7 +1824,7 @@ _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 27;" 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
@@ -1939,7 +1945,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 43;" f
_matUBO src/Data/Preload/Render.hs 44;" 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
@@ -2042,7 +2048,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 31;" f
_pictureShaders src/Data/Preload/Render.hs 32;" 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
@@ -2085,6 +2091,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
_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
@@ -2123,7 +2130,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 42;" f
_rboBaseBloom src/Data/Preload/Render.hs 43;" f
_renderData src/Data/Preload.hs 11;" f
_respawnDelay src/Dodge/Data/World.hs 62;" f
_respawnPos src/Dodge/Data/LWorld.hs 145;" f
@@ -2186,7 +2193,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 57;" f
_screenTextureVAO src/Data/Preload/Render.hs 59;" 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
@@ -2216,9 +2223,9 @@ _sfVs src/Shape/Data.hs 38;" 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 29;" f
_shapeEBO src/Data/Preload/Render.hs 30;" f
_shapeHalfSize src/Shape/Data.hs 13;" f
_shapeShader src/Data/Preload/Render.hs 28;" f
_shapeShader src/Data/Preload/Render.hs 29;" 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
@@ -2230,7 +2237,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 30;" f
_silhouetteEBO src/Data/Preload/Render.hs 31;" 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
@@ -2295,7 +2302,7 @@ _terminals src/Dodge/Data/LWorld.hs 122;" f
_teslaArcs src/Dodge/Data/LWorld.hs 110;" f
_testFloat src/Dodge/Data/World.hs 42;" f
_textInput src/Dodge/Data/Input.hs 46;" f
_textureObject src/Shader/Data.hs 93;" f
_textureObject src/Shader/Data.hs 101;" f
_tiText src/Dodge/Data/Terminal/Status.hs 14;" f
_tileArrayZ src/Data/Tile.hs 24;" f
_tilePoly src/Data/Tile.hs 17;" f
@@ -2329,7 +2336,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 23;" f
_transparencyCompShader src/Data/Preload/Render.hs 24;" f
_trieChildren src/SimpleTrie.hs 12;" f
_trieMVal src/SimpleTrie.hs 11;" f
_triggers src/Dodge/Data/LWorld.hs 126;" f
@@ -2351,7 +2358,7 @@ _unFBO src/Shader/Data.hs 57;" f
_unNInt src/NewInt.hs 16;" f
_unNIntMap src/NewInt.hs 22;" f
_unNIntSet src/NewInt.hs 19;" f
_unPrimitiveMode src/Shader/Data.hs 97;" f
_unPrimitiveMode src/Shader/Data.hs 105;" f
_unPutCrit src/Dodge/Data/GenWorld.hs 32;" f
_unST src/Dodge/Data/MetaTree.hs 20;" f
_unTO src/Shader/Data.hs 59;" f
@@ -2391,9 +2398,9 @@ _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 47;" f
_vboShapes src/Data/Preload/Render.hs 49;" f
_vboVertexBytes src/Shader/Data.hs 82;" f
_vboWindows src/Data/Preload/Render.hs 46;" f
_vboWindows src/Data/Preload/Render.hs 48;" f
_vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f
_vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f
_vertices src/Polyhedra/Data.hs 22;" f
@@ -2415,18 +2422,18 @@ _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
_wallShader src/Data/Preload/Render.hs 53;" f
_wallVBO src/Data/Preload/Render.hs 52;" f
_wallSSBO src/Data/Preload/Render.hs 46;" f
_wallShader src/Data/Preload/Render.hs 55;" f
_wallVBO src/Data/Preload/Render.hs 54;" 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
_winSSBO src/Data/Preload/Render.hs 44;" f
_winSSBO src/Data/Preload/Render.hs 45;" 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
_windowShader 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
@@ -2636,7 +2643,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 251;" f
bindFBO src/Render.hs 252;" f
bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f
@@ -2692,7 +2699,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 466;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 471;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f
bufferShaderLayers src/Shader/Bind.hs 36;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
@@ -2785,7 +2792,7 @@ clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f
clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f
cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f
cleanUpPreload src/Preload.hs 10;" f
cleanUpRenderPreload src/Preload/Render.hs 258;" f
cleanUpRenderPreload src/Preload/Render.hs 267;" f
cleanUpSoundPreload src/Preload.hs 15;" f
cleanupHalted src/Sound.hs 117;" f
cleatLabel src/Dodge/Cleat.hs 30;" f
@@ -2871,7 +2878,7 @@ 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 235;" f
cornerList src/Preload/Render.hs 244;" f
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
@@ -3434,7 +3441,7 @@ facesToVF src/Polyhedra/Geodesic.hs 69;" f
farWallDistDirection src/Dodge/Update/Camera.hs 244;" f
fdiv src/ShortShow.hs 41;" f
feet src/Dodge/Creature/Picture.hs 51;" f
ffoldM src/Framebuffer/Update.hs 71;" f
ffoldM src/Framebuffer/Update.hs 73;" f
filter3 src/FoldableHelp.hs 76;" f
filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f
findBlips src/Dodge/RadarSweep.hs 63;" f
@@ -3498,7 +3505,7 @@ forceSpine src/StrictHelp.hs 4;" f
fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f
fpsText src/Dodge/Render/Picture.hs 59;" f
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 145;" f
frag src/Shader/Data.hs 100;" f
frag src/Shader/Data.hs 108;" f
freeShaderPointers' src/Shader.hs 37;" f
fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
fromJust' src/MaybeHelp.hs 22;" f
@@ -3528,7 +3535,7 @@ generateGraphs src/Dodge/Menu.hs 149;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
generateLevelFromRoomList src/Dodge/Layout.hs 35;" f
generateWorldFromSeed src/Dodge/LevelGen.hs 17;" f
geom src/Shader/Data.hs 100;" f
geom src/Shader/Data.hs 108;" f
geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f
@@ -3547,7 +3554,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 472;" f
getDistortions src/Dodge/Render.hs 477;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3698,10 +3705,10 @@ 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 253;" f
initializeGLState src/Preload/Render.hs 262;" f
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
initializeTexture2D src/Framebuffer/Update.hs 203;" f
initializeTexture2D src/Framebuffer/Update.hs 205;" f
inorderNumberTree src/TreeHelp.hs 190;" f
insertAt src/Padding.hs 63;" f
insertIMInZone src/Dodge/Base.hs 54;" f
@@ -4323,7 +4330,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 227;" f
pingPongBetween src/Render.hs 228;" 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
@@ -4352,16 +4359,16 @@ playSoundAndUpdate src/Sound.hs 54;" f
playSoundQueue src/Sound.hs 132;" f
playSoundUnlessRewinding appDodge/Main.hs 118;" f
plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f
pmLineLoop src/Shader/Data.hs 105;" f
pmLineStrip src/Shader/Data.hs 105;" f
pmLines src/Shader/Data.hs 105;" f
pmLinesAdjacency src/Shader/Data.hs 105;" f
pmPatches src/Shader/Data.hs 105;" f
pmPoints src/Shader/Data.hs 105;" f
pmQuads src/Shader/Data.hs 105;" f
pmTriangleFan src/Shader/Data.hs 105;" f
pmTriangleStrip src/Shader/Data.hs 105;" f
pmTriangles src/Shader/Data.hs 105;" f
pmLineLoop src/Shader/Data.hs 113;" f
pmLineStrip src/Shader/Data.hs 113;" f
pmLines src/Shader/Data.hs 113;" f
pmLinesAdjacency src/Shader/Data.hs 113;" f
pmPatches src/Shader/Data.hs 113;" f
pmPoints src/Shader/Data.hs 113;" f
pmQuads src/Shader/Data.hs 113;" f
pmTriangleFan src/Shader/Data.hs 113;" f
pmTriangleStrip src/Shader/Data.hs 113;" f
pmTriangles src/Shader/Data.hs 113;" f
pnZoneSize src/Dodge/Zoning/Pathing.hs 26;" f
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
pointInCircle src/Geometry.hs 209;" f
@@ -4601,7 +4608,7 @@ renderDataResizeUpdate src/Preload/Update.hs 26;" f
renderFlatLighting src/Render.hs 107;" f
renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 240;" f
renderLayer src/Render.hs 241;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 192;" f
renderShadows src/Render.hs 122;" f
@@ -4611,10 +4618,10 @@ resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f
resetPLUse src/Dodge/PlacementSpot.hs 92;" f
resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f
resetTerminal src/Dodge/WorldEffect.hs 109;" f
resizeFBOTO src/Framebuffer/Update.hs 185;" f
resizeFBOTO2 src/Framebuffer/Update.hs 133;" f
resizeFBOTO3 src/Framebuffer/Update.hs 157;" f
resizeRBO src/Framebuffer/Update.hs 74;" f
resizeFBOTO src/Framebuffer/Update.hs 187;" f
resizeFBOTO2 src/Framebuffer/Update.hs 135;" f
resizeFBOTO3 src/Framebuffer/Update.hs 159;" f
resizeRBO src/Framebuffer/Update.hs 76;" f
respawn src/Dodge/SpawnAt.hs 12;" f
restrictInLinks src/Dodge/RoomLink.hs 44;" f
restrictLinkType src/Dodge/RoomLink.hs 34;" f
@@ -4813,7 +4820,7 @@ 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 477;" f
setViewport src/Dodge/Render.hs 482;" f
setVol src/Dodge/Config.hs 47;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f
@@ -5318,9 +5325,9 @@ updateEnergyBall src/Dodge/EnergyBall.hs 31;" f
updateEnergyBalls src/Dodge/Update.hs 658;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 505;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFBOTO src/Framebuffer/Update.hs 77;" f
updateFBOTO2 src/Framebuffer/Update.hs 95;" f
updateFBOTO3 src/Framebuffer/Update.hs 113;" f
updateFBOTO src/Framebuffer/Update.hs 79;" f
updateFBOTO2 src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 115;" f
updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 655;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f
@@ -5448,7 +5455,7 @@ validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
vasTightStride src/Shader/Compile.hs 303;" f
vecBetweenSpeed src/Dodge/Base.hs 146;" f
vecTurnTo src/Dodge/Movement/Turn.hs 19;" f
vert src/Shader/Data.hs 100;" f
vert src/Shader/Data.hs 108;" f
vertScale src/MatrixHelper.hs 95;" f
vertTrans src/MatrixHelper.hs 103;" f
verticalPipe src/Dodge/Picture.hs 19;" f