Work on distortion shader

This commit is contained in:
2025-11-15 23:17:44 +00:00
parent d436b853eb
commit 1205823ddb
12 changed files with 108 additions and 119 deletions
+15 -2
View File
@@ -1,10 +1,23 @@
#version 450 core
in vec2 texPos;
in vec2 distmask;
in vec2 pinch;
out vec4 fColor;
layout (binding = 1) uniform sampler2D screenTexture;
float x = min(1, dot(distmask,distmask));
float x = 1 - min(1, dot(distmask,distmask));
float xab = abs(distmask.x);
float yab = abs(distmask.y);
void main()
{
fColor = mix(texture(screenTexture, texPos),vec4(1,0,0,1),x);
fColor = (xab < 1 && yab < 1
//? vec4 (0.5*(distmask.x+1),0.5*(distmask.y+1),0,1)
? vec4 (0.5*(distmask.x+1),0.5*(distmask.y+1),0,1)
: texture(screenTexture, texPos));
//fColor = texture(screenTexture, (texPos + x*x*pinch));
//fColor = vec4
// ( texture(screenTexture, (texPos + x*x*pinch)).r
// , texture(screenTexture, (texPos - x*x*pinch)).g
// , texture(screenTexture, (texPos - x*x*(pinch.yx))).b
// , texture(screenTexture, texPos).a
// ) ;
}
-44
View File
@@ -1,44 +0,0 @@
#version 450 core
layout (points) in;
layout (triangle_strip, max_vertices = 4) out;
in vec2 vRad1[];
in vec2 vRad2[];
in vec2 vCen[];
in float vFactor[];
out vec2 vcpos;
out vec2 texPos;
out vec2 texDist;
out float gfactor;
vec2 g(float x,float y, vec2 v, vec2 r1, vec2 r2)
{ return vec2
(dot(normalize(r1-v),vec2(x,y)-v) / length(r1-v)
,dot(normalize(r2-v),vec2(x,y)-v) / length(r2-v)
);
}
void main() {
vec2 cpos = vCen[0];
vcpos = cpos;
vec2 grad1 = vRad1[0];
vec2 grad2 = vRad2[0];
gfactor = vFactor[0];
texPos = vec2(1,1);
texDist = g(1,1,cpos,grad1,grad2);
gl_Position = vec4 (1,1,0,1);
EmitVertex();
texPos = vec2(1,0);
texPos = vec2(1,-1);
texDist = g(1,-1,cpos,grad1,grad2);
gl_Position = vec4 (1,-1,0,1);
EmitVertex();
texPos = vec2(0,1);
texPos = vec2(-1,1);
texDist = g(-1,1,cpos,grad1,grad2);
gl_Position = vec4 (-1,1,0,1);
EmitVertex();
texPos = vec2(0,0);
texPos = vec2(-1,-1);
texDist = g(-1,-1,cpos,grad1,grad2);
gl_Position = vec4 (-1,-1,0,1);
EmitVertex();
EndPrimitive();
}
+24 -5
View File
@@ -1,9 +1,10 @@
#version 450 core
struct DataS { vec2 pos; vec2 rad1; vec2 rad2; };
struct DataS { vec2 pos; vec2 v1; vec2 v2; vec2 rad; };
layout (std430, binding = 9) readonly buffer Data { DataS data[]; };
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
out vec2 texPos;
out vec2 distmask;
out vec2 pinch;
const int ks[6] =
{0,1,2 // 2--3
,2,1,3 // | |
@@ -18,10 +19,28 @@ void main()
{
int k = ks[gl_VertexID];
vec4 off = (theMat * vec4(data[gl_VertexID/6].pos, 0,1));
float r = distance
((theMat * vec4(data[gl_VertexID/6].rad1, 0,1)).xy
,(theMat * vec4(0,0, 0,1)).xy);
distmask = (cs[k] - off.xy)/r;
vec2 r1 = (theMat * vec4(data[gl_VertexID/6].v1, 0,1)).xy
- (theMat * vec4(0,0,0,1)).xy;
vec2 r2 = (theMat * vec4(data[gl_VertexID/6].v2, 0,1)).xy
- (theMat * vec4(0,0, 0,1)).xy;
pinch =
(theMat * vec4(data[gl_VertexID/6].rad, 0,1)).xy
- (theMat * vec4(0,0, 0,1)).xy;
// mat2 distT = mat2(-1/r1.x, -1/r2.x
// ,1/r1.y, -1/r2.y
// );
// mat2 distT = mat2(2, 0
// ,-1/sqrt(2), 1/sqrt(2)
// );
// mat2 distT = mat2(1/r1.x, 2*sqrt(2)
// ,1/r1.y, 2*sqrt(2)
// );
mat2 distT = inverse (mat2(r1,r2));
// mat2 distT = mat2(1/r1.x, 1/r2.x
// ,1/r1.y, 1/r2.y
// );
//distmask = (cs[k] - off.xy)/r;
distmask = distT * (cs[k] - off.xy);
texPos = 0.5 * (cs[k]+vec2(1,1));
gl_Position = vec4 (cs[k],0,1);
}
+11 -10
View File
@@ -43,13 +43,14 @@ blinkActionMousePos cr w =
pushIntoMaybe (x,my) = (x,) <$> my
blinkDistortions :: Point2 -> Point2 -> World -> World
blinkDistortions sp ep = cWorld . lWorld . distortions .++~ distortionBulge
where
distR = 120
distortionBulge =
[ RadialDistortion ep (ep +.+ V2 distR 0) (ep +.+ V2 0 distR) 0.1
, RadialDistortion sp (sp +.+ V2 distR 0) (sp +.+ V2 0 distR) 1.9
]
blinkDistortions _ _ = id
--blinkDistortions sp ep = cWorld . lWorld . distortions .++~ distortionBulge
-- where
-- distR = 120
-- distortionBulge =
-- [ RadialDistortion ep (ep +.+ V2 distR 0) (ep +.+ V2 0 distR) 0.1
-- , RadialDistortion sp (sp +.+ V2 distR 0) (sp +.+ V2 0 distR) 1.9
-- ]
{- | Teleport a creature to the mouse position.
Can go through walls, if ending up in wall does big damage.
@@ -87,12 +88,12 @@ blinkActionFail :: Creature -> World -> World
blinkActionFail cr w =
w
& soundMultiFrom [TeleSound 0, TeleSound 1] p3 teleS Nothing
& cWorld . lWorld . distortions .:~ distortionBulge
-- & cWorld . lWorld . distortions .:~ distortionBulge
& cWorld . lWorld . creatures . ix cid . crPos . _xy .~ p3
& inverseShockwaveAt (cpos `v2z` 20) 40 2 2
where
distR = 120
distortionBulge = RadialDistortion cpos (cpos +.+ V2 distR 0) (cpos +.+ V2 0 distR) 1.9
-- distR = 120
-- distortionBulge = RadialDistortion cpos (cpos +.+ V2 distR 0) (cpos +.+ V2 0 distR) 1.9
cid = _crID cr
p1 = w ^. cWorld . lWorld . lAimPos
cpos = cr ^. crPos . _xy
+1 -1
View File
@@ -7,7 +7,7 @@ import Geometry
import Data.Aeson
import Data.Aeson.TH
data Distortion = RadialDistortion Point2 Point2 Point2 Float
data Distortion = RadialDistortion Point2 Point2 Point2 Point2 Int
deriving (Eq, Ord, Show, Read) --Generic, Flat)
deriveJSON defaultOptions ''Distortion
+2 -3
View File
@@ -5,7 +5,6 @@ import Dodge.Data.Distortion
updateDistortion :: Distortion -> Maybe Distortion
updateDistortion = \case
RadialDistortion a b c v
| v > 1 -> Just $ RadialDistortion a b c $ max 1 (v - 0.05)
| v < 1 -> Just $ RadialDistortion a b c $ min 1 (v + 0.05)
RadialDistortion a b c d t
| t > 0 -> Just $ RadialDistortion a b c d $ t-1
| otherwise -> Nothing
+2 -1
View File
@@ -10,5 +10,6 @@ testEvent :: World -> World
testEvent w = fromMaybe w $ do
cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos . _xy
let distR = 50
distortionBulge = RadialDistortion cpos (V2 distR 0) (cpos + V2 0 distR) 1.9
distortionBulge = RadialDistortion cpos (V2 (0.5*distR) (-0.5*distR)) (V2 0 distR)
(V2 (0.5* distR) 0) 20
return $ w & cWorld . lWorld . distortions .~ [distortionBulge]
+2 -2
View File
@@ -366,9 +366,9 @@ doDrawing' win pdata u = do
glBindFramebuffer GL_FRAMEBUFFER 0
glUseProgram (pdata ^. fullscreenShader)
glDrawArrays GL_TRIANGLES 0 6
(RadialDistortion (V2 a b) (V2 c d) (V2 e f) g:_) -> do
(RadialDistortion (V2 a b) (V2 c d) (V2 e f) (V2 g h) _:_) -> do
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fbo2 . _1 . unFBO)
pokeArray (pdata ^. barrelShader . _2 . vboPtr) [a, b, c, d, e, f]
pokeArray (pdata ^. barrelShader . _2 . vboPtr) [a, b, c, d, e, f, g, h]
withArray [a, b, c, d, e, f, g] $
glNamedBufferSubData (pdata ^. barrelShader . _2 . vboName) 0
(6 * fromIntegral (sizeOf (0 :: Float)))
+2 -1
View File
@@ -32,7 +32,8 @@ import Data.Foldable
import Data.Monoid
testStringInit :: Universe -> [String]
testStringInit u = [ show $ fmap (
testStringInit u = [ show (u ^. uvWorld . wCam . camRot)
,show $ fmap (
worldPosToScreen (u ^. uvWorld . wCam) )
$ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crPos . _xy
]
+17 -15
View File
@@ -39,27 +39,29 @@ updateFloatingCamera cfig w =
& updateBounds cfig
& wCam %~ setViewDistance cfig
& wCam %~ translateFloatingCamera theinput
& rotateCamera cfig
& wCam %~ translateFloatingCameraKeys theinput
& wCam %~ zoomFloatingCamera theinput
where
theinput = w ^. input
translateFloatingCamera :: Input -> Camera -> Camera
translateFloatingCamera theinput cam = fromMaybe cam $ do
lpresstime <- theinput ^. mouseButtons . at ButtonLeft
rpresstime <- theinput ^. mouseButtons . at ButtonRight
if lpresstime > rpresstime
then do
hpos <- theinput ^? heldPos . ix ButtonLeft
let thetran =
screenToWorldPos cam hpos
-.- screenToWorldPos cam (theinput ^. mousePos)
return $
cam & camCenter +~ thetran
& camViewFrom +~ thetran
else do
a <- theinput ^. heldPos . at SDL.ButtonRight
return $ cam & camRot -~ angleBetween (theinput ^. mousePos) a
translateFloatingCamera _ cam = cam -- fromMaybe cam $ do
---- lpresstime <- theinput ^. mouseButtons . at ButtonLeft
-- _ <- theinput ^. mouseButtons . at ButtonRight
---- guard (theinput ^. mouseButtons . at ButtonRight == Nothing)
---- if lpresstime > rpresstime
---- then do
-- hpos <- theinput ^? heldPos . ix ButtonRight
-- let thetran =
-- screenToWorldPos cam hpos
-- -.- screenToWorldPos cam (theinput ^. mousePos)
-- return $
-- cam & camCenter +~ thetran
-- & camViewFrom +~ thetran
---- else do
---- a <- theinput ^. heldPos . at SDL.ButtonRight
---- return $ cam & camRot -~ angleBetween (theinput ^. mousePos) a
translateFloatingCameraKeys :: Input -> Camera -> Camera
translateFloatingCameraKeys theinput cam =
+2 -2
View File
@@ -129,11 +129,11 @@ preloadRender = do
lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag]
distbo <- mglCreate glCreateBuffers
let distbosize = sizeOf (0 :: Float) * 6 * 1024
let distbosize = sizeOf (0 :: Float) * 8 * 1024
glNamedBufferStorage distbo (fromIntegral distbosize) nullPtr GL_DYNAMIC_STORAGE_BIT
glBindBufferBase GL_SHADER_STORAGE_BUFFER 9 distbo
distptr <- mallocBytes distbosize
let distvbo = VBO distbo distptr (sizeOf (0::Float) * 6)
let distvbo = VBO distbo distptr (sizeOf (0::Float) * 8)
barrelShad <- makeSourcedShader "texture/barrel" [vert,frag]
putStrLn "Setup floor VBO, shader"
+30 -33
View File
@@ -1598,8 +1598,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 47;" f
_chasmVBO src/Data/Preload/Render.hs 46;" f
_chasmShader src/Data/Preload/Render.hs 46;" f
_chasmVBO src/Data/Preload/Render.hs 45;" 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 51;" f
_cloudVBO src/Data/Preload/Render.hs 50;" f
_cloudShader src/Data/Preload/Render.hs 50;" f
_cloudVBO src/Data/Preload/Render.hs 49;" 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 52;" f
_dummyVAO src/Data/Preload/Render.hs 51;" 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
@@ -1769,15 +1769,14 @@ _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
_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
_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
_flItPos src/Dodge/Data/FloorItem.hs 11;" f
_flItRot src/Dodge/Data/FloorItem.hs 11;" f
_flPos src/Dodge/Data/Flame.hs 13;" f
@@ -1791,8 +1790,8 @@ _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 45;" f
_floorVBO src/Data/Preload/Render.hs 44;" f
_floorShader src/Data/Preload/Render.hs 44;" f
_floorVBO src/Data/Preload/Render.hs 43;" 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
@@ -1914,7 +1913,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 42;" f
_lightUBO src/Data/Preload/Render.hs 41;" 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
@@ -1950,7 +1949,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 41;" f
_matUBO src/Data/Preload/Render.hs 40;" 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
@@ -2135,7 +2134,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 40;" f
_rboBaseBloom src/Data/Preload/Render.hs 39;" f
_renderData src/Data/Preload.hs 11;" f
_respawnDelay src/Dodge/Data/World.hs 62;" f
_respawnPos src/Dodge/Data/LWorld.hs 145;" f
@@ -2407,7 +2406,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 43;" f
_vboShapes src/Data/Preload/Render.hs 42;" 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
@@ -2430,13 +2429,13 @@ _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 49;" f
_wallVBO src/Data/Preload/Render.hs 48;" 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 48;" f
_winVBO src/Data/Preload/Render.hs 47;" 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
@@ -2707,7 +2706,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 399;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 400;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f
bufferShaderLayers src/Shader/Bind.hs 32;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
@@ -2885,7 +2884,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 214;" f
cornerList src/Preload/Render.hs 219;" f
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
@@ -3178,8 +3177,8 @@ doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f
doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f
doDoorMount src/Dodge/Door.hs 30;" f
doDrag src/Dodge/Update/Input/InGame.hs 127;" f
doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 45;" f
doDrawing src/Dodge/Render.hs 33;" f
doDrawing' src/Dodge/Render.hs 44;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1158;" f
doGravityPU src/Dodge/Projectile/Update.hs 35;" f
@@ -3202,7 +3201,7 @@ doScopeZoom src/Dodge/Update/Scroll.hs 91;" f
doSectionSize src/Dodge/DisplayInventory.hs 211;" f
doSideEffects appDodge/Main.hs 125;" f
doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 172;" f
doTestDrawing src/Dodge/Render.hs 41;" f
doTestDrawing src/Dodge/Render.hs 40;" f
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 129;" f
@@ -3325,8 +3324,7 @@ drawSelect src/Dodge/Render/Picture.hs 257;" f
drawSelectionList src/Dodge/Render/List.hs 36;" f
drawSelectionListBackground src/Dodge/Render/List.hs 52;" f
drawSelectionSections src/Dodge/SelectionSections/Draw.hs 16;" f
drawShader src/Shader.hs 26;" f
drawShaderLay src/Shader.hs 15;" f
drawShaderLay src/Shader.hs 10;" f
drawShadowsByImportance src/Dodge/Shadows.hs 8;" f
drawShell src/Dodge/Projectile/Draw.hs 22;" f
drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f
@@ -3561,7 +3559,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 411;" f
getDistortions src/Dodge/Render.hs 412;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3712,7 +3710,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 235;" f
initializeGLState src/Preload/Render.hs 240;" f
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
initializeTexture2D src/Framebuffer/Update.hs 214;" f
@@ -4819,7 +4817,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 416;" f
setViewport src/Dodge/Render.hs 417;" f
setVol src/Dodge/Config.hs 47;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f
@@ -4837,7 +4835,6 @@ setupVertexAttribPointer src/Shader/Compile.hs 110;" f
setupVertexAttribs src/Shader/Compile.hs 104;" f
setupWorldBounds src/Dodge/Layout.hs 116;" f
sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f
shadVBOptr src/Shader.hs 36;" f
shaderTypeExt src/Shader/Compile.hs 67;" f
shapeBounds src/Dodge/Room/Foreground.hs 147;" f
shapePoints src/Dodge/Room/Foreground.hs 144;" f