From cb64be4eeb8701610b4dc8460fa59bb44d1ca81d Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 20 Nov 2025 16:30:41 +0000 Subject: [PATCH] Commit before removing geometry shader from ellipses --- shader/dualTwoD/ellipse.vert | 5 ++ src/Data/Preload/Render.hs | 1 - src/Preload/Render.hs | 10 +-- src/Shader.hs | 10 ++- src/Shader/Compile.hs | 5 +- src/Shader/Data.hs | 28 +++--- tags | 159 ++++++++++++++++++----------------- 7 files changed, 117 insertions(+), 101 deletions(-) diff --git a/shader/dualTwoD/ellipse.vert b/shader/dualTwoD/ellipse.vert index e23911b65..aaea57cc7 100644 --- a/shader/dualTwoD/ellipse.vert +++ b/shader/dualTwoD/ellipse.vert @@ -3,6 +3,11 @@ layout (location = 0) in vec3 pos; layout (location = 1) in vec4 col; layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; out vec4 vCol; +//const int ks[6] = // +// {0,1,2 // 2--3 +// ,2,1,3 // | | +// }; // 0--1 +// // void main() { gl_Position = vec4(pos,1); diff --git a/src/Data/Preload/Render.hs b/src/Data/Preload/Render.hs index d18a52e7a..ceaf074e4 100644 --- a/src/Data/Preload/Render.hs +++ b/src/Data/Preload/Render.hs @@ -21,7 +21,6 @@ data RenderData = RenderData , _windowPullShader :: GLuint , _pullWallShader :: GLuint , _fullscreenShader :: GLuint --- , _transparencyCompShader :: GLuint , _bloomBlurShader :: GLuint , _barrelShader :: (GLuint,VBO) , _shapeShader :: GLuint diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 2c4580d99..bf752a899 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -104,12 +104,10 @@ preloadRender = do ceilingstencilshader <- makeSourcedShader "ceiling/stencil" [vert] putStrLn "Setup 2D shaders" - bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4]) pmTriangles - aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [3, 4, 3]) pmTriangles - eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] (toFloatVAs [3, 4]) pmTriangles - cslist <- - --makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 4]) pmTriangles - makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 3]) pmTriangles + bslist <- makeShaderVBO "dualTwoD/basic" [vert, frag] (toFloatVAs [3, 4]) + aslist <- makeShaderVBO "dualTwoD/arc" [vert, frag] (toFloatVAs [3, 4, 3]) + eslist <- makeShaderVBO "dualTwoD/ellipse" [vert, geom, frag] (toFloatVAs [3, 4]) + cslist <- makeShaderVBO "picture/charArray" [vert, frag] (toFloatVAs [3, 4, 3]) shadV <- MV.new 4 zipWithM_ (MV.write shadV) diff --git a/src/Shader.hs b/src/Shader.hs index 24ddf1d68..9e2dbaf0d 100644 --- a/src/Shader.hs +++ b/src/Shader.hs @@ -14,6 +14,12 @@ drawShaderLay l countsVector shadIn fs = do glUseProgram (_shaderUINT $ fst fs) glBindVertexArray $ fs ^. _1 . shaderVAO . unVAO glDrawArrays - (_unPrimitiveMode $ _shaderPrimitive $ fst fs) + GL_TRIANGLES (fromIntegral $ l * numSubElements) - (fromIntegral i) + (drawCountMod shadIn i) + --(fromIntegral i) + +drawCountMod :: Int -> Int -> GLsizei +drawCountMod i n + | i == 3 = fromIntegral n -- modifies ellipse draw count + | otherwise = fromIntegral n diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index 34be145cf..1cf43ef14 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -28,16 +28,15 @@ makeShaderVBO :: [GLenum] -> -- | The input vertex sizes [VertexAttribute] -> - PrimitiveMode -> IO (Shader, VBO) -makeShaderVBO s shaderlist sizes pm = do +makeShaderVBO s shaderlist sizes = do prog <- makeSourcedShader s shaderlist (vao, vbo) <- setupVBOVAO sizes return ( Shader { _shaderUINT = prog , _shaderVAO = vao - , _shaderPrimitive = pm +-- , _shaderPrimitive = pm } , vbo ) diff --git a/src/Shader/Data.hs b/src/Shader/Data.hs index f919cefc7..11340adf6 100644 --- a/src/Shader/Data.hs +++ b/src/Shader/Data.hs @@ -50,7 +50,7 @@ import Graphics.GL.Core45 -- | Datatype containing the necessary information for a single shader. data Shader = Shader { _shaderUINT :: GLuint -- should be shaderID - , _shaderPrimitive :: PrimitiveMode +-- , _shaderPrimitive :: PrimitiveMode , _shaderVAO :: VAO } @@ -104,7 +104,7 @@ newtype ShaderTexture = ShaderTexture -- , _textureTarget :: GLenum } -newtype PrimitiveMode = PrimitiveMode {_unPrimitiveMode :: GLenum} +--newtype PrimitiveMode = PrimitiveMode {_unPrimitiveMode :: GLenum} -- | Short synonyms for shader types vert, geom, frag :: GLenum @@ -112,17 +112,17 @@ vert = GL_VERTEX_SHADER geom = GL_GEOMETRY_SHADER frag = GL_FRAGMENT_SHADER -pmPoints, pmLines, pmLinesAdjacency, pmLineLoop, pmLineStrip, pmTriangles, pmTriangleStrip, pmTriangleFan, pmQuads, pmPatches :: PrimitiveMode -pmPoints = PrimitiveMode GL_POINTS -pmLines = PrimitiveMode GL_LINES -pmLinesAdjacency = PrimitiveMode GL_LINES_ADJACENCY -pmLineLoop = PrimitiveMode GL_LINE_LOOP -pmLineStrip = PrimitiveMode GL_LINE_STRIP -pmTriangles = PrimitiveMode GL_TRIANGLES -pmTriangleStrip = PrimitiveMode GL_TRIANGLE_STRIP -pmTriangleFan = PrimitiveMode GL_TRIANGLE_FAN -pmQuads = PrimitiveMode GL_QUADS -pmPatches = PrimitiveMode GL_PATCHES +--pmPoints, pmLines, pmLinesAdjacency, pmLineLoop, pmLineStrip, pmTriangles, pmTriangleStrip, pmTriangleFan, pmQuads, pmPatches :: PrimitiveMode +--pmPoints = PrimitiveMode GL_POINTS +--pmLines = PrimitiveMode GL_LINES +--pmLinesAdjacency = PrimitiveMode GL_LINES_ADJACENCY +--pmLineLoop = PrimitiveMode GL_LINE_LOOP +--pmLineStrip = PrimitiveMode GL_LINE_STRIP +--pmTriangles = PrimitiveMode GL_TRIANGLES +--pmTriangleStrip = PrimitiveMode GL_TRIANGLE_STRIP +--pmTriangleFan = PrimitiveMode GL_TRIANGLE_FAN +--pmQuads = PrimitiveMode GL_QUADS +--pmPatches = PrimitiveMode GL_PATCHES makeLenses ''VAO makeLenses ''VBO @@ -132,5 +132,5 @@ makeLenses ''ShaderTexture makeLenses ''Shader makeLenses ''FBO makeLenses ''TO -makeLenses ''PrimitiveMode +--makeLenses ''PrimitiveMode makeLenses ''VertexAttribute diff --git a/tags b/tags index 63bcaf090..2d926a24f 100644 --- a/tags +++ b/tags @@ -326,7 +326,7 @@ Dirt src/Dodge/Data/Material.hs 12;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t DisplayTerminal src/Dodge/Data/HUD.hs 27;" C Display_debug src/Dodge/Data/Config.hs 79;" C -Distortion src/Dodge/Data/Distortion.hs 10;" t +Distortion src/Dodge/Data/Distortion.hs 11;" t DivineRetribution src/Dodge/Data/Scenario.hs 35;" C DoActionIf src/Dodge/Data/ActionPlan.hs 87;" C DoActionIfElse src/Dodge/Data/ActionPlan.hs 91;" C @@ -1059,7 +1059,7 @@ RPLinkStatus src/Dodge/Data/Room.hs 58;" t RProps src/Dodge/Layout/Generate.hs 13;" C RadarBlip src/Dodge/Data/RadarBlip.hs 12;" t RadarSweep src/Dodge/Data/RadarSweep.hs 17;" t -RadialDistortion src/Dodge/Data/Distortion.hs 10;" C +RadialDistortion src/Dodge/Data/Distortion.hs 11;" C RandImpulse src/Dodge/Data/ActionPlan.hs 49;" t RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 51;" C RandImpulseList src/Dodge/Data/ActionPlan.hs 50;" C @@ -1488,7 +1488,7 @@ _allocOldPos src/Dodge/Data/RightButtonOptions.hs 26;" f _allocOldPos src/Dodge/Data/RightButtonOptions.hs 33;" f _allocRemoveID src/Dodge/Data/RightButtonOptions.hs 31;" f _allocSwapID src/Dodge/Data/RightButtonOptions.hs 27;" f -_alphaDivideShader src/Data/Preload/Render.hs 19;" f +_alphaDivideShader src/Data/Preload/Render.hs 20;" f _alteRifleSwitch src/Dodge/Data/Item/Params.hs 18;" f _ambushTarget src/Dodge/Data/ActionPlan.hs 130;" f _ampBullet src/Dodge/Data/Item/Use.hs 50;" f @@ -1514,7 +1514,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 25;" f +_barrelShader src/Data/Preload/Render.hs 26;" 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 @@ -1532,7 +1532,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 @@ -1597,9 +1597,9 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 85;" f _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 46;" f -_chasmVBO src/Data/Preload/Render.hs 45;" f +_ceilingStencilShader src/Data/Preload/Render.hs 19;" f +_chasmShader src/Data/Preload/Render.hs 47;" f +_chasmVBO src/Data/Preload/Render.hs 46;" 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 @@ -1628,8 +1628,8 @@ _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 50;" f -_cloudVBO src/Data/Preload/Render.hs 49;" f +_cloudShader src/Data/Preload/Render.hs 51;" f +_cloudVBO src/Data/Preload/Render.hs 50;" f _clouds src/Dodge/Data/LWorld.hs 96;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 22;" f @@ -1758,7 +1758,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 51;" f +_dummyVAO src/Data/Preload/Render.hs 52;" 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 @@ -1768,15 +1768,15 @@ _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 30;" f -_fboBase src/Data/Preload/Render.hs 33;" f -_fboBloom src/Data/Preload/Render.hs 36;" f -_fboCloud src/Data/Preload/Render.hs 34;" f -_fboHalf1 src/Data/Preload/Render.hs 31;" f -_fboHalf2 src/Data/Preload/Render.hs 32;" f -_fboLighting src/Data/Preload/Render.hs 38;" f -_fboPos src/Data/Preload/Render.hs 37;" f -_fboWindow src/Data/Preload/Render.hs 35;" f +_fbo2 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 @@ -1790,13 +1790,13 @@ _flboName src/Shader/Data.hs 86;" f _flboPtr src/Shader/Data.hs 87;" f _flboStride src/Shader/Data.hs 88;" f _floorItems src/Dodge/Data/LWorld.hs 127;" f -_floorShader src/Data/Preload/Render.hs 44;" f -_floorVBO src/Data/Preload/Render.hs 43;" f +_floorShader src/Data/Preload/Render.hs 45;" f +_floorVBO src/Data/Preload/Render.hs 44;" 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 66;" f @@ -1913,8 +1913,9 @@ _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 41;" f +_lightUBO src/Data/Preload/Render.hs 42;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f +_lightingCloudShader src/Data/Preload/Render.hs 18;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f _lightingTextureShader src/Data/Preload/Render.hs 17;" f _lights src/Dodge/Data/LWorld.hs 134;" f @@ -1949,7 +1950,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 40;" 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 @@ -2052,7 +2053,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 29;" f +_pictureShaders src/Data/Preload/Render.hs 30;" 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 @@ -2095,7 +2096,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 21;" 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 @@ -2134,7 +2135,14 @@ _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 39;" f +_rboBaseBloom src/Data/Preload/Render.hs 40;" f +_rdDist1 src/Dodge/Data/Distortion.hs 13;" f +_rdDist2 src/Dodge/Data/Distortion.hs 14;" f +_rdPos src/Dodge/Data/Distortion.hs 12;" f +_rdTB src/Dodge/Data/Distortion.hs 16;" f +_rdTG src/Dodge/Data/Distortion.hs 17;" f +_rdTR src/Dodge/Data/Distortion.hs 15;" f +_rdTime src/Dodge/Data/Distortion.hs 27;" f _renderData src/Data/Preload.hs 11;" f _respawnDelay src/Dodge/Data/World.hs 62;" f _respawnPos src/Dodge/Data/LWorld.hs 145;" f @@ -2227,9 +2235,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 27;" f +_shapeEBO src/Data/Preload/Render.hs 28;" f _shapeHalfSize src/Shape/Data.hs 13;" f -_shapeShader src/Data/Preload/Render.hs 26;" f +_shapeShader src/Data/Preload/Render.hs 27;" 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 @@ -2241,7 +2249,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 28;" f +_silhouetteEBO src/Data/Preload/Render.hs 29;" 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 @@ -2342,7 +2350,6 @@ _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 _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f _triggers src/Dodge/Data/LWorld.hs 126;" f @@ -2406,7 +2413,7 @@ _vaOffset src/Shader/Data.hs 70;" f _vaType src/Shader/Data.hs 68;" f _vboName src/Shader/Data.hs 80;" f _vboPtr src/Shader/Data.hs 81;" f -_vboShapes src/Data/Preload/Render.hs 42;" f +_vboShapes src/Data/Preload/Render.hs 43;" 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 @@ -2429,16 +2436,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 48;" f +_wallVBO src/Data/Preload/Render.hs 49;" 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 47;" f +_winVBO src/Data/Preload/Render.hs 48;" f _windowPosX src/Dodge/Data/Config.hs 64;" f _windowPosY src/Dodge/Data/Config.hs 65;" f -_windowPullShader src/Data/Preload/Render.hs 20;" f +_windowPullShader src/Data/Preload/Render.hs 21;" f _windowX src/Dodge/Data/Config.hs 62;" f _windowY src/Dodge/Data/Config.hs 63;" f _wlHeight src/Dodge/Data/Wall.hs 25;" f @@ -2649,15 +2656,15 @@ 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 231;" f +bindFBO src/Render.hs 233;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f blank src/Picture/Base.hs 59;" f blinkAcrossChallenge src/Dodge/Room/BlinkAcross.hs 14;" f -blinkActionFail src/Dodge/Creature/Action/Blink.hs 86;" f +blinkActionFail src/Dodge/Creature/Action/Blink.hs 87;" f blinkActionMousePos src/Dodge/Creature/Action/Blink.hs 24;" f blinkDistortions src/Dodge/Creature/Action/Blink.hs 45;" f -blinkShockwave src/Dodge/Creature/Action/Blink.hs 77;" f +blinkShockwave src/Dodge/Creature/Action/Blink.hs 78;" f blinker src/Dodge/Item/Held/Utility.hs 30;" f blipAt src/Dodge/RadarSweep.hs 78;" f blockLine src/Dodge/Placement/Instance/Wall.hs 52;" f @@ -2706,7 +2713,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 400;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 402;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2807,7 +2814,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 582;" f clicker src/Dodge/Item/Scope.hs 82;" f clipV src/Geometry/Vector.hs 48;" f -clipZoom src/Dodge/Update/Camera.hs 233;" f +clipZoom src/Dodge/Update/Camera.hs 235;" f clockCycle src/Dodge/Clock.hs 7;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f @@ -2884,7 +2891,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 219;" f +cornerList src/Preload/Render.hs 221;" f corpseOrGib src/Dodge/Creature/Update.hs 111;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f @@ -3207,7 +3214,7 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 129;" f doTimeScroll src/Dodge/Update.hs 198;" f doTmWdWd src/Dodge/WorldEffect.hs 94;" f -doWallRotate src/Dodge/Update/Camera.hs 223;" f +doWallRotate src/Dodge/Update/Camera.hs 225;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdP2f src/Dodge/WdP2f.hs 10;" f @@ -3444,14 +3451,14 @@ extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f faceEdges src/Polyhedra.hs 65;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f -farWallDistDirection src/Dodge/Update/Camera.hs 244;" f +farWallDistDirection src/Dodge/Update/Camera.hs 246;" f fdiv src/ShortShow.hs 41;" f feet src/Dodge/Creature/Picture.hs 51;" f ffoldM src/Framebuffer/Update.hs 85;" f filter3 src/FoldableHelp.hs 76;" f filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f findBlips src/Dodge/RadarSweep.hs 63;" f -findBoundDists src/Dodge/Update/Camera.hs 251;" f +findBoundDists src/Dodge/Update/Camera.hs 253;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findIndex src/IntMapHelp.hs 86;" f @@ -3545,7 +3552,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f -getAimZoom src/Dodge/Update/Camera.hs 146;" f +getAimZoom src/Dodge/Update/Camera.hs 148;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f getAttachedSFLink src/Dodge/HeldUse.hs 788;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f @@ -3559,7 +3566,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 412;" f +getDistortions src/Dodge/Render.hs 414;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3584,7 +3591,7 @@ getTiles src/Dodge/Layout.hs 199;" f getViewpoints src/Dodge/Viewpoints.hs 29;" f getVolleyBurst src/Dodge/HeldUse.hs 126;" f getWallPathing src/Dodge/Wall/Pathing.hs 7;" f -getWallSPic src/Dodge/Render/Walls.hs 55;" f +getWallSPic src/Dodge/Render/Walls.hs 61;" f getWindowSize src/Dodge/WindowSize.hs 6;" f gimbal src/Dodge/Item/Scope.hs 153;" f girder src/Dodge/Room/Foreground.hs 206;" f @@ -3659,7 +3666,7 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 81;" f healthTest src/Dodge/Room/LasTurret.hs 122;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f -heldAimZoom src/Dodge/Update/Camera.hs 152;" f +heldAimZoom src/Dodge/Update/Camera.hs 154;" f heldEffect src/Dodge/HeldUse.hs 60;" f heldEffectMuzzles src/Dodge/HeldUse.hs 131;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f @@ -3710,7 +3717,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 240;" f +initializeGLState src/Preload/Render.hs 242;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f initializeTexture2D src/Framebuffer/Update.hs 214;" f @@ -4178,7 +4185,7 @@ moveToSideNthOutLink src/Dodge/Room/Warning.hs 69;" f moveWall src/Dodge/Wall/Move.hs 23;" f moveWallID src/Dodge/Wall/Move.hs 18;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f -moveZoomCamera src/Dodge/Update/Camera.hs 90;" f +moveZoomCamera src/Dodge/Update/Camera.hs 92;" f mtTopLabels src/Dodge/Tree/Compose.hs 50;" f mtUnderLabels src/Dodge/Tree/Compose.hs 53;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f @@ -4330,7 +4337,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 206;" f +pingPongBetween src/Render.hs 208;" 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 @@ -4565,6 +4572,7 @@ randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f randsOnCirc src/RandomHelp.hs 127;" f randsSpread src/RandomHelp.hs 120;" f ratIntersectLineLine src/Geometry/Intersect.hs 216;" f +rdToVec2s src/Dodge/Render.hs 397;" f readSaveSlot src/Dodge/Save.hs 45;" f recoilAmount src/Dodge/HeldUse.hs 467;" f rectNSWE src/Geometry/Polygon.hs 15;" f @@ -4602,13 +4610,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 27;" f -renderFlatLighting src/Render.hs 105;" f +renderFlatLighting src/Render.hs 104;" f renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f -renderLayer src/Render.hs 220;" f -renderLightingNoShadows src/Render.hs 52;" f +renderLayer src/Render.hs 222;" f +renderLightingNoShadows src/Render.hs 51;" f renderListAt src/Dodge/Render/List.hs 192;" f -renderShadows src/Render.hs 120;" f +renderShadows src/Render.hs 119;" 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 @@ -4683,14 +4691,14 @@ rotate3 src/Geometry/Vector3D.hs 48;" f rotate3x src/Geometry/Vector3D.hs 60;" f rotate3y src/Geometry/Vector3D.hs 66;" f rotate3z src/Geometry/Vector3D.hs 54;" f -rotateCamera src/Dodge/Update/Camera.hs 200;" f +rotateCamera src/Dodge/Update/Camera.hs 202;" f rotateList src/Padding.hs 49;" f rotateSH src/Shape.hs 257;" f rotateSHq src/Shape.hs 166;" f rotateSHx src/Shape.hs 265;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f -rotateToOverlappingWall src/Dodge/Update/Camera.hs 212;" f +rotateToOverlappingWall src/Dodge/Update/Camera.hs 214;" f rotateToZ src/Quaternion.hs 35;" f rotateV src/Geometry/Vector.hs 106;" f rotateVAround src/Geometry/Vector.hs 113;" f @@ -4815,10 +4823,11 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f setTile src/Dodge/Layout.hs 70;" f setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 98;" f -setViewDistance src/Dodge/Update/Camera.hs 239;" f +setViewDistance src/Dodge/Update/Camera.hs 241;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 417;" f +setViewport src/Dodge/Render.hs 419;" f setVol src/Dodge/Config.hs 47;" f +setWindowColor src/Dodge/Render/Walls.hs 32;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Euse.hs 38;" f setupConLoop src/Loop.hs 103;" f @@ -4893,9 +4902,9 @@ showEquipItem src/Dodge/Item/Display.hs 107;" f showInt src/Dodge/Item/Info.hs 75;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f -showManObj src/Dodge/TestString.hs 51;" f +showManObj src/Dodge/TestString.hs 52;" f showTerminalError src/Dodge/Debug/Terminal.hs 80;" f -showTimeFlow src/Dodge/TestString.hs 74;" f +showTimeFlow src/Dodge/TestString.hs 75;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 175;" f shrinkVert src/Geometry/Polygon.hs 179;" f shuffle src/RandomHelp.hs 49;" f @@ -5092,7 +5101,7 @@ terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 409;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f -testEvent src/Dodge/Event/Test.hs 9;" f +testEvent src/Dodge/Event/Test.hs 10;" f testInventory src/Dodge/Creature.hs 292;" f testStringInit src/Dodge/TestString.hs 34;" f text src/Picture/Base.hs 193;" f @@ -5167,7 +5176,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f topInvW src/Dodge/ListDisplayParams.hs 49;" f topPrismEdgeIndices src/Shader/Poke.hs 334;" f topPrismIndices src/Shader/Poke.hs 409;" f -topTestPart src/Dodge/TestString.hs 47;" f +topTestPart src/Dodge/TestString.hs 48;" f torchShape src/Dodge/Item/Draw/SPic.hs 276;" f torqueAmount src/Dodge/HeldUse.hs 581;" f torqueCr src/Dodge/WorldEffect.hs 77;" f @@ -5184,8 +5193,8 @@ transMat src/MatrixHelper.hs 87;" f transToHandle src/Dodge/Item/HeldOffset.hs 26;" f translate src/Picture/Base.hs 116;" f translate3 src/Picture/Base.hs 120;" f -translateFloatingCamera src/Dodge/Update/Camera.hs 47;" f -translateFloatingCameraKeys src/Dodge/Update/Camera.hs 64;" f +translateFloatingCamera src/Dodge/Update/Camera.hs 48;" f +translateFloatingCameraKeys src/Dodge/Update/Camera.hs 66;" f translateH src/Picture/Base.hs 112;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 36;" f @@ -5267,7 +5276,7 @@ unigate src/Dodge/Item/Scope.hs 102;" f unitVectorAtAngle src/Geometry/Vector.hs 101;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f unpause src/Dodge/Menu.hs 207;" f -unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 57;" f +unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 58;" f unsafeBlinker src/Dodge/Item/Held/Utility.hs 33;" f unsafeSwapKeys src/IntMapHelp.hs 75;" f unshadowBlock src/Dodge/Block.hs 14;" f @@ -5284,7 +5293,7 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f updateBarrel src/Dodge/Barreloid.hs 44;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f -updateBounds src/Dodge/Update/Camera.hs 261;" f +updateBounds src/Dodge/Update/Camera.hs 263;" f updateBulVel src/Dodge/Bullet.hs 57;" f updateBullet src/Dodge/Bullet.hs 22;" f updateBullets src/Dodge/Update.hs 563;" f @@ -5303,7 +5312,7 @@ updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 95;" f updateDelayedEvents src/Dodge/Update.hs 888;" f updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f -updateDistortion src/Dodge/Distortion.hs 6;" f +updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortions src/Dodge/Update.hs 556;" f updateDoor src/Dodge/Door.hs 22;" f updateDoors src/Dodge/Update.hs 308;" f @@ -5328,7 +5337,7 @@ updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f updateGusts src/Dodge/Update.hs 779;" f updateIMl src/Dodge/Update.hs 529;" f updateIMl' src/Dodge/Update.hs 532;" f -updateInGameCamera src/Dodge/Update/Camera.hs 82;" f +updateInGameCamera src/Dodge/Update/Camera.hs 84;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 428;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f @@ -5456,7 +5465,7 @@ verticalWire src/Dodge/Wire.hs 23;" f vgunMuzzles src/Dodge/HeldUse.hs 341;" f viewBoundaries src/Dodge/Debug/Picture.hs 331;" f viewClipBounds src/Dodge/Debug/Picture.hs 340;" f -viewDistanceFromItems src/Dodge/Update/Camera.hs 197;" f +viewDistanceFromItems src/Dodge/Update/Camera.hs 199;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f violet src/Color.hs 21;" f visibleWalls src/Dodge/Base/Collide.hs 216;" f @@ -5471,7 +5480,7 @@ wallBuffer src/Dodge/WallCreatureCollisions.hs 54;" f wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f wallToSurface src/Dodge/Base/Collide.hs 180;" f wallsFromRooms src/Dodge/Layout.hs 137;" f -wallsToDraw src/Dodge/Render/Walls.hs 16;" f +wallsToDraw src/Dodge/Render/Walls.hs 18;" f warmupSound src/Dodge/HeldUse.hs 1376;" f warningRooms src/Dodge/Room/Warning.hs 30;" f wasdAim src/Dodge/Creature/YourControl.hs 133;" f @@ -5519,8 +5528,8 @@ wlIXsNearRect src/Dodge/Zoning/Wall.hs 29;" f wlIXsNearSeg src/Dodge/Zoning/Wall.hs 25;" f wlIsOpaque src/Dodge/Base/Wall.hs 6;" f wlIsSeeThrough src/Dodge/Base/Wall.hs 11;" f -wlOpaqueDraw src/Dodge/Render/Walls.hs 47;" f -wlSeeThroughDraw src/Dodge/Render/Walls.hs 50;" f +wlOpaqueDraw src/Dodge/Render/Walls.hs 53;" f +wlSeeThroughDraw src/Dodge/Render/Walls.hs 56;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f wlsHit src/Dodge/WorldEvent/ThingsHit.hs 139;" f @@ -5593,7 +5602,7 @@ zonePn src/Dodge/Zoning/Pathing.hs 32;" f zoneWall src/Dodge/Zoning/Wall.hs 65;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 98;" f zonesExtract src/Dodge/Zoning/Base.hs 62;" f -zoomFloatingCamera src/Dodge/Update/Camera.hs 74;" f +zoomFloatingCamera src/Dodge/Update/Camera.hs 76;" f zoomInLongGun src/Dodge/Update/Scroll.hs 105;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 113;" f zoomScope src/Dodge/Item/Scope.hs 33;" f