Simplify ceiling oclusions
This commit is contained in:
@@ -1,18 +1,15 @@
|
|||||||
#version 450 core
|
#version 450 core
|
||||||
layout (location = 0) in vec4 posID;
|
layout (location = 0) in vec4 posID;
|
||||||
layout (location = 1) in vec4 col;
|
layout (location = 1) in vec4 col;
|
||||||
//layout (location = 2) in vec4 centerSize;
|
|
||||||
layout (location = 2) in vec4 controls;
|
layout (location = 2) in vec4 controls;
|
||||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||||
out vec4 vPosID;
|
out vec4 vPosID;
|
||||||
out vec4 vCol;
|
out vec4 vCol;
|
||||||
//out vec4 vCenterSize;
|
|
||||||
out vec4 vControls;
|
out vec4 vControls;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_Position = theMat * vec4(posID.xyz,1);
|
gl_Position = theMat * vec4(posID.xyz,1);
|
||||||
vPosID = posID;
|
vPosID = posID;
|
||||||
vCol = col;
|
vCol = col;
|
||||||
//vCenterSize = centerSize;
|
|
||||||
vControls = controls;
|
vControls = controls;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#version 450 core
|
#version 450 core
|
||||||
|
layout(early_fragment_tests) in;
|
||||||
layout(location=0)uniform vec3 lightPos;
|
layout(location=0)uniform vec3 lightPos;
|
||||||
layout(location=1)uniform vec4 lumRad;
|
layout(location=1)uniform vec4 lumRad;
|
||||||
layout (binding = 0) uniform sampler2D screenTexture;
|
layout (binding = 0) uniform sampler2D screenTexture;
|
||||||
@@ -15,20 +16,11 @@ void main() {
|
|||||||
}
|
}
|
||||||
vec4 normbit = texture(normals, vTexPos);
|
vec4 normbit = texture(normals, vTexPos);
|
||||||
vec3 norm = normbit.xyz;
|
vec3 norm = normbit.xyz;
|
||||||
float y1 = dot(normalize(norm), normalize(distVec));
|
float y1 = dot(norm, distVec);
|
||||||
float y2 = float(y1 > 0 ? 1 : 0);
|
float y2 = float(y1 > 0 ? 1 : 0);
|
||||||
//float y3 = clamp(0.5 * (y1 + 1),0,1) ;
|
|
||||||
float y3 = clamp(2*y1 + 1,0,1) ;
|
|
||||||
//float y3 = clamp(0.5 * (y1 + 2),0,1) ;
|
|
||||||
//float y = float(normbit.w == 0 ? y3 : y2);
|
|
||||||
float y = y2;
|
|
||||||
//float x = 1 - dist / rad;
|
|
||||||
float x = 1 - (pow(dist / rad,4));
|
float x = 1 - (pow(dist / rad,4));
|
||||||
//float x = 1 ;
|
//float x = 1 - (dist / rad);
|
||||||
//float x = 1;
|
//float x = 1;
|
||||||
//float x = 1 - max(0, ((dist + 10000) - rad) * 0.0001) ;
|
vec3 c = y2* x * lumRad.rgb;
|
||||||
//vec3 c = y* (x * x * x) * lumRad.rgb;
|
|
||||||
vec3 c = y* x * lumRad.rgb;
|
|
||||||
//vec3 c = x * lumRad.rgb;
|
|
||||||
fColor = vec4(c, 0);
|
fColor = vec4(c, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,10 +67,10 @@ void main() {
|
|||||||
|
|
||||||
vec2 closeshift = (rad * normalize(closepoint - lightPos.xy)) + lightPos.xy - closepoint;
|
vec2 closeshift = (rad * normalize(closepoint - lightPos.xy)) + lightPos.xy - closepoint;
|
||||||
vec2 shifto = (rad * normalize(closepoint - lightPos.xy)) + closepoint;
|
vec2 shifto = (rad * normalize(closepoint - lightPos.xy)) + closepoint;
|
||||||
//vec2 p1o = vec2( distance(p1,lightPos.xy) > rad ? p1 : shift(p1) );
|
vec2 p1o = vec2( distance(p1,lightPos.xy) > rad ? p1 : shift(p1) );
|
||||||
vec2 p1o = xoo;
|
//vec2 p1o = xoo;
|
||||||
//vec2 p2o = vec2( distance(p2,lightPos.xy) > rad ? p2 : shift(p2) );
|
vec2 p2o = vec2( distance(p2,lightPos.xy) > rad ? p2 : shift(p2) );
|
||||||
vec2 p2o = yoo;
|
//vec2 p2o = yoo;
|
||||||
|
|
||||||
gl_Position = theMat * vec4(p1o,-500,1); EmitVertex();
|
gl_Position = theMat * vec4(p1o,-500,1); EmitVertex();
|
||||||
gl_Position = theMat * vec4(p1,-500,1); EmitVertex();
|
gl_Position = theMat * vec4(p1,-500,1); EmitVertex();
|
||||||
|
|||||||
+39
-51
@@ -48,13 +48,9 @@ doDrawing' win pdata u = do
|
|||||||
checkGLError "during drawing"
|
checkGLError "during drawing"
|
||||||
let w = _uvWorld u
|
let w = _uvWorld u
|
||||||
cfig = _uvConfig u
|
cfig = _uvConfig u
|
||||||
rot = w ^. wCam . camRot
|
|
||||||
camzoom = w ^. wCam . camZoom
|
|
||||||
trans = w ^. wCam . camCenter
|
|
||||||
wins = V2 (windowXFloat cfig) (windowYFloat cfig)
|
|
||||||
(windowPoints, wallSPics, wallsToPoke) = wallsToDraw w
|
(windowPoints, wallSPics, wallsToPoke) = wallsToDraw w
|
||||||
lightPoints = lightsToRender cfig (w ^. wCam) (w ^. cWorld . lWorld)
|
lightPoints = lightsToRender cfig (w ^. wCam) (w ^. cWorld . lWorld)
|
||||||
viewFroms@(V2 vfx vfy) = w ^. wCam . camViewFrom
|
--(V2 vfx vfy) = w ^. wCam . camViewFrom
|
||||||
shadV = _pictureShaders pdata
|
shadV = _pictureShaders pdata
|
||||||
nFls = w ^. cWorld . numberFloorVerxs
|
nFls = w ^. cWorld . numberFloorVerxs
|
||||||
nchs = w ^. cWorld . numberChasmVerxs
|
nchs = w ^. cWorld . numberChasmVerxs
|
||||||
@@ -98,7 +94,6 @@ doDrawing' win pdata u = do
|
|||||||
(pokeDust (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . eboPtr))
|
(pokeDust (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . eboPtr))
|
||||||
(nCloudVs', nCloudIs')
|
(nCloudVs', nCloudIs')
|
||||||
(V.fromList $ w ^. cWorld . lWorld . dusts)
|
(V.fromList $ w ^. cWorld . lWorld . dusts)
|
||||||
|
|
||||||
-- bind wall points, silhouette data, surface geometry
|
-- bind wall points, silhouette data, surface geometry
|
||||||
bufferShaderLayers shadV pokeCounts
|
bufferShaderLayers shadV pokeCounts
|
||||||
mapM_
|
mapM_
|
||||||
@@ -115,8 +110,7 @@ doDrawing' win pdata u = do
|
|||||||
, (_silhouetteEBO pdata, nSilIndices)
|
, (_silhouetteEBO pdata, nSilIndices)
|
||||||
]
|
]
|
||||||
-- set the coordinate uniform ready for drawing elements using world coordinates
|
-- set the coordinate uniform ready for drawing elements using world coordinates
|
||||||
withArray (perspectiveMatrixb rot camzoom trans wins viewFroms) $
|
bufferPerspectiveMatrixUBO cfig (w ^. wCam) (pdata ^. matUBO)
|
||||||
glNamedBufferSubData (pdata ^. matUBO) 0 64
|
|
||||||
setViewport _graphics_world_resolution cfig
|
setViewport _graphics_world_resolution cfig
|
||||||
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO)
|
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO)
|
||||||
glDepthMask GL_TRUE
|
glDepthMask GL_TRUE
|
||||||
@@ -131,27 +125,29 @@ doDrawing' win pdata u = do
|
|||||||
1
|
1
|
||||||
0
|
0
|
||||||
-- draw wall occlusions from the camera's point of view
|
-- draw wall occlusions from the camera's point of view
|
||||||
glDisable GL_CULL_FACE
|
|
||||||
glEnable GL_STENCIL_TEST
|
|
||||||
glStencilFunc GL_NOTEQUAL 128 255
|
glStencilFunc GL_NOTEQUAL 128 255
|
||||||
glStencilOp GL_KEEP GL_KEEP GL_REPLACE
|
glStencilOp GL_KEEP GL_KEEP GL_REPLACE
|
||||||
|
glEnable GL_CULL_FACE
|
||||||
|
glCullFace GL_BACK
|
||||||
unless (debugOn Remove_LOS cfig) $ do
|
unless (debugOn Remove_LOS cfig) $ do
|
||||||
glUseProgram (pdata ^. ceilingStencilShader . shaderUINT)
|
glUseProgram (pdata ^. ceilingStencilShader . shaderUINT)
|
||||||
glProgramUniform3f
|
-- glProgramUniform3f
|
||||||
(pdata ^. ceilingStencilShader . shaderUINT)
|
-- (pdata ^. ceilingStencilShader . shaderUINT)
|
||||||
0
|
-- 0
|
||||||
vfx
|
-- vfx
|
||||||
vfy
|
-- vfy
|
||||||
20
|
-- 20
|
||||||
glProgramUniform1f
|
-- glProgramUniform1f
|
||||||
(pdata ^. ceilingStencilShader . shaderUINT)
|
-- (pdata ^. ceilingStencilShader . shaderUINT)
|
||||||
1
|
-- 1
|
||||||
1000 -- this should be the furthest on screen distance from the viewpoint
|
-- 1000 -- this should be the furthest on screen distance from the viewpoint
|
||||||
glBindVertexArray $ pdata ^. ceilingStencilShader . shaderVAO . vaoName
|
glBindVertexArray $ pdata ^. ceilingStencilShader . shaderVAO . vaoName
|
||||||
|
glEnable GL_DEPTH_CLAMP
|
||||||
glDrawArrays
|
glDrawArrays
|
||||||
(_unPrimitiveMode $ pdata ^. ceilingStencilShader . shaderPrimitive)
|
(_unPrimitiveMode $ pdata ^. ceilingStencilShader . shaderPrimitive)
|
||||||
0
|
0
|
||||||
(fromIntegral trueNWalls)
|
(fromIntegral trueNWalls)
|
||||||
|
glDisable GL_DEPTH_CLAMP
|
||||||
glStencilMask 127 -- to alter last seven bits
|
glStencilMask 127 -- to alter last seven bits
|
||||||
glStencilOp GL_KEEP GL_KEEP GL_KEEP
|
glStencilOp GL_KEEP GL_KEEP GL_KEEP
|
||||||
-- clear color and normals
|
-- clear color and normals
|
||||||
@@ -162,7 +158,6 @@ doDrawing' win pdata u = do
|
|||||||
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
||||||
glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3
|
glNamedFramebufferDrawBuffers (pdata ^. fboBase . _1 . unFBO) 3
|
||||||
--draw walls onto base buffer
|
--draw walls onto base buffer
|
||||||
-- maybe cull faces? maybe do this before?
|
|
||||||
glEnable GL_CULL_FACE
|
glEnable GL_CULL_FACE
|
||||||
glCullFace GL_BACK
|
glCullFace GL_BACK
|
||||||
glUseProgram (pdata ^. wallShader . shaderUINT)
|
glUseProgram (pdata ^. wallShader . shaderUINT)
|
||||||
@@ -185,7 +180,7 @@ doDrawing' win pdata u = do
|
|||||||
glBindVertexArray $ pdata ^. chasmShader . shaderVAO . vaoName
|
glBindVertexArray $ pdata ^. chasmShader . shaderVAO . vaoName
|
||||||
glDepthMask GL_FALSE
|
glDepthMask GL_FALSE
|
||||||
glDrawBuffer GL_NONE
|
glDrawBuffer GL_NONE
|
||||||
glStencilOp GL_INCR GL_INCR GL_INCR
|
glStencilOp GL_KEEP GL_KEEP GL_INCR
|
||||||
with 0 $
|
with 0 $
|
||||||
glClearNamedFramebufferiv
|
glClearNamedFramebufferiv
|
||||||
(pdata ^. fboBase . _1 . unFBO)
|
(pdata ^. fboBase . _1 . unFBO)
|
||||||
@@ -206,11 +201,9 @@ doDrawing' win pdata u = do
|
|||||||
(_unPrimitiveMode $ pdata ^. floorShader . shaderPrimitive)
|
(_unPrimitiveMode $ pdata ^. floorShader . shaderPrimitive)
|
||||||
0
|
0
|
||||||
(fromIntegral nFls)
|
(fromIntegral nFls)
|
||||||
glDisable GL_STENCIL_TEST
|
--glDisable GL_STENCIL_TEST
|
||||||
glDisable GL_CULL_FACE
|
glDisable GL_CULL_FACE
|
||||||
glEnable GL_BLEND
|
glEnable GL_BLEND
|
||||||
-- reset stencil to not draw on ceilings
|
|
||||||
glStencilFunc GL_NOTEQUAL 128 255
|
|
||||||
--draw lightmap into its own buffer
|
--draw lightmap into its own buffer
|
||||||
createLightMap
|
createLightMap
|
||||||
cfig
|
cfig
|
||||||
@@ -232,16 +225,11 @@ doDrawing' win pdata u = do
|
|||||||
glBlendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR
|
glBlendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR
|
||||||
drawShader (_fullscreenShader pdata) 4
|
drawShader (_fullscreenShader pdata) 4
|
||||||
with GL_COLOR_ATTACHMENT0 $
|
with GL_COLOR_ATTACHMENT0 $
|
||||||
glInvalidateNamedFramebufferData
|
glInvalidateNamedFramebufferData (pdata ^. fboLighting . _1 . unFBO) 1
|
||||||
(pdata ^. fboLighting . _1 . unFBO)
|
|
||||||
1
|
|
||||||
--draw bloom onto bloom buffer
|
--draw bloom onto bloom buffer
|
||||||
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBloom . _1 . unFBO)
|
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBloom . _1 . unFBO)
|
||||||
withArray [0, 0, 0, 0] $
|
withArray [0, 0, 0, 0] $
|
||||||
glClearNamedFramebufferfv
|
glClearNamedFramebufferfv (pdata ^. fboBloom . _1 . unFBO) GL_COLOR 0
|
||||||
(pdata ^. fboBloom . _1 . unFBO)
|
|
||||||
GL_COLOR
|
|
||||||
0
|
|
||||||
glDepthFunc GL_LESS
|
glDepthFunc GL_LESS
|
||||||
glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||||
glDepthMask GL_FALSE
|
glDepthMask GL_FALSE
|
||||||
@@ -251,7 +239,10 @@ doDrawing' win pdata u = do
|
|||||||
-- draw clouds to block bloom particles, transparency blocks some alpha
|
-- draw clouds to block bloom particles, transparency blocks some alpha
|
||||||
glDepthMask GL_FALSE
|
glDepthMask GL_FALSE
|
||||||
glBlendColor 0 0 0 0.1 -- using this and GL_CONSTANT_ALPHA below
|
glBlendColor 0 0 0 0.1 -- using this and GL_CONSTANT_ALPHA below
|
||||||
-- can allow for some underlighting of the clouds
|
-- can allow for some bloom to bleed through underneath the clouds
|
||||||
|
-- note that BloomNoZWrite will always be under the clouds, this should be
|
||||||
|
-- rethought, either do another pass and write just the depth or even remove
|
||||||
|
-- the layer entirely
|
||||||
glBlendFuncSeparate GL_ZERO GL_ONE GL_CONSTANT_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
glBlendFuncSeparate GL_ZERO GL_ONE GL_CONSTANT_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||||
glUseProgram (pdata ^. cloudShader . shaderUINT)
|
glUseProgram (pdata ^. cloudShader . shaderUINT)
|
||||||
glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName
|
glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName
|
||||||
@@ -271,7 +262,8 @@ doDrawing' win pdata u = do
|
|||||||
glDisable GL_BLEND
|
glDisable GL_BLEND
|
||||||
drawShader (_bloomBlurShader pdata) 4
|
drawShader (_bloomBlurShader pdata) 4
|
||||||
when (cfig ^. graphics_bloom) $ do
|
when (cfig ^. graphics_bloom) $ do
|
||||||
replicateM_ 2 $ pingPongBetween (_fboHalf1 pdata) (_fboHalf2 pdata) (_bloomBlurShader pdata)
|
replicateM_ 2 $ pingPongBetween
|
||||||
|
(_fboHalf1 pdata) (_fboHalf2 pdata) (_bloomBlurShader pdata)
|
||||||
glEnable GL_BLEND
|
glEnable GL_BLEND
|
||||||
setViewport _graphics_world_resolution cfig
|
setViewport _graphics_world_resolution cfig
|
||||||
--draw clouds onto cloud buffer
|
--draw clouds onto cloud buffer
|
||||||
@@ -282,12 +274,11 @@ doDrawing' win pdata u = do
|
|||||||
--withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $
|
--withArray [GL_COLOR_ATTACHMENT0, GL_NONE] $
|
||||||
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1] $
|
withArray [GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1] $
|
||||||
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2
|
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 2
|
||||||
withArray [0.5, 0.5, 0.5, 0] $ \ptr ->
|
withArray [0.5, 0.5, 0.5, 0] $
|
||||||
glClearNamedFramebufferfv
|
glClearNamedFramebufferfv
|
||||||
(pdata ^. fboCloud . _1 . unFBO)
|
(pdata ^. fboCloud . _1 . unFBO)
|
||||||
GL_COLOR
|
GL_COLOR
|
||||||
0
|
0
|
||||||
ptr
|
|
||||||
glUseProgram (pdata ^. cloudShader . shaderUINT)
|
glUseProgram (pdata ^. cloudShader . shaderUINT)
|
||||||
glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName
|
glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName
|
||||||
glDrawElements
|
glDrawElements
|
||||||
@@ -307,20 +298,11 @@ doDrawing' win pdata u = do
|
|||||||
glDepthFunc GL_ALWAYS
|
glDepthFunc GL_ALWAYS
|
||||||
glDisable GL_BLEND
|
glDisable GL_BLEND
|
||||||
withArray [GL_NONE, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
withArray [GL_NONE, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2] $
|
||||||
-- \ptr -> glDrawBuffers 3 ptr
|
|
||||||
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 3
|
glNamedFramebufferDrawBuffers (pdata ^. fboCloud . _1 . unFBO) 3
|
||||||
withArray [0, 0, 0, 0] $ \ptr ->
|
withArray [0, 0, 0, 0] $
|
||||||
glClearNamedFramebufferfv
|
glClearNamedFramebufferfv (pdata ^. fboCloud . _1 . unFBO) GL_COLOR 1
|
||||||
(pdata ^. fboCloud . _1 . unFBO)
|
withArray [0, 0, 0, 0] $
|
||||||
GL_COLOR
|
glClearNamedFramebufferfv (pdata ^. fboCloud . _1 . unFBO) GL_COLOR 2
|
||||||
1
|
|
||||||
ptr
|
|
||||||
withArray [0, 0, 0, 0] $ \ptr ->
|
|
||||||
glClearNamedFramebufferfv
|
|
||||||
(pdata ^. fboCloud . _1 . unFBO)
|
|
||||||
GL_COLOR
|
|
||||||
2
|
|
||||||
ptr
|
|
||||||
glEnable GL_BLEND
|
glEnable GL_BLEND
|
||||||
-- we sum the positions weighted by alpha, and sum the alpha
|
-- we sum the positions weighted by alpha, and sum the alpha
|
||||||
glBlendFuncSeparatei 1 GL_SRC_ALPHA GL_ONE GL_ONE GL_ONE
|
glBlendFuncSeparatei 1 GL_SRC_ALPHA GL_ONE GL_ONE GL_ONE
|
||||||
@@ -430,13 +412,19 @@ doDrawing' win pdata u = do
|
|||||||
renderLayer DebugLayer shadV pokeCounts
|
renderLayer DebugLayer shadV pokeCounts
|
||||||
glBindBufferBase GL_UNIFORM_BUFFER 0 (pdata ^. matUBO)
|
glBindBufferBase GL_UNIFORM_BUFFER 0 (pdata ^. matUBO)
|
||||||
withArray (scaleMatrix (2 / windowXFloat cfig) (2 / windowYFloat cfig)) $
|
withArray (scaleMatrix (2 / windowXFloat cfig) (2 / windowYFloat cfig)) $
|
||||||
\ptr -> glNamedBufferSubData (pdata ^. matUBO) 0 64 ptr
|
glNamedBufferSubData (pdata ^. matUBO) 0 64
|
||||||
glDepthFunc GL_GEQUAL
|
glDepthFunc GL_GEQUAL
|
||||||
glDepthMask GL_TRUE
|
glDepthMask GL_TRUE
|
||||||
with (-1) $ \ptr -> glClearNamedFramebufferfv 0 GL_DEPTH 0 ptr
|
with (-1) $ glClearNamedFramebufferfv 0 GL_DEPTH 0
|
||||||
renderLayer FixedCoordLayer shadV pokeCounts
|
renderLayer FixedCoordLayer shadV pokeCounts
|
||||||
SDL.glSwapWindow win
|
SDL.glSwapWindow win
|
||||||
|
|
||||||
|
bufferPerspectiveMatrixUBO :: Config -> Camera -> GLuint -> IO ()
|
||||||
|
bufferPerspectiveMatrixUBO cfig cam uboid = withArray
|
||||||
|
(perspectiveMatrixb (cam ^. camRot) (cam ^. camZoom) (cam ^. camCenter)
|
||||||
|
(V2 (windowXFloat cfig) (windowYFloat cfig)) (cam ^. camViewFrom))
|
||||||
|
$ glNamedBufferSubData uboid 0 64
|
||||||
|
|
||||||
getDistortions :: Config -> World -> [Distortion]
|
getDistortions :: Config -> World -> [Distortion]
|
||||||
getDistortions cfig w
|
getDistortions cfig w
|
||||||
| cfig ^. graphics_distortions = w ^. cWorld . lWorld . distortions
|
| cfig ^. graphics_distortions = w ^. cWorld . lWorld . distortions
|
||||||
|
|||||||
+83
-67
@@ -1,92 +1,108 @@
|
|||||||
module MatrixHelper
|
module MatrixHelper (
|
||||||
( perspectiveMatrixb
|
perspectiveMatrixb,
|
||||||
, isoMatrix
|
isoMatrix,
|
||||||
, scaleMatrix
|
scaleMatrix,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
|
|
||||||
import Linear.Matrix
|
|
||||||
import Graphics.GL.Core45
|
import Graphics.GL.Core45
|
||||||
|
import Linear.Matrix
|
||||||
|
|
||||||
perspectiveMatrixb
|
perspectiveMatrixb ::
|
||||||
:: Float -- ^ Rotation
|
-- | Rotation
|
||||||
-> Float -- ^ Zoom
|
Float ->
|
||||||
-> Point2 -- ^ Translation
|
-- | Zoom
|
||||||
-> Point2 -- ^ Window size
|
Float ->
|
||||||
-> Point2 -- ^ View froms
|
-- | Translation
|
||||||
-> [GLfloat]
|
Point2 ->
|
||||||
|
-- | Window size
|
||||||
|
Point2 ->
|
||||||
|
-- | View froms
|
||||||
|
Point2 ->
|
||||||
|
[GLfloat]
|
||||||
perspectiveMatrixb rot zoom (V2 tranx trany) (V2 winx winy) (V2 viewFromx viewFromy) =
|
perspectiveMatrixb rot zoom (V2 tranx trany) (V2 winx winy) (V2 viewFromx viewFromy) =
|
||||||
concatMap vToL
|
concatMap vToL
|
||||||
. vToL
|
. vToL
|
||||||
. lmt
|
. lmt
|
||||||
$ scaleMat (V2 (2*zoom/winx) (2*zoom/winy))
|
$ scaleMat (V2 (2 * zoom / winx) (2 * zoom / winy))
|
||||||
!*! rotMatr (-rot)
|
!*! rotMatr (- rot)
|
||||||
!*! transMat (V2 (viewFromx-tranx) (viewFromy-trany))
|
!*! transMat (V2 (viewFromx - tranx) (viewFromy - trany))
|
||||||
!*! perMat 0.4
|
!*! perMat 0.4
|
||||||
!*! transMat (V2 (-viewFromx) (-viewFromy))
|
!*! transMat (V2 (- viewFromx) (- viewFromy))
|
||||||
!*! vertScale (negate 0.005)
|
!*! vertScale (negate 0.005)
|
||||||
!*! vertTrans 20
|
!*! vertTrans 20
|
||||||
|
|
||||||
isoMatrix
|
isoMatrix ::
|
||||||
:: Float -- ^ Rotation
|
-- | Rotation
|
||||||
-> Float -- ^ Zoom
|
Float ->
|
||||||
-> Point2 -- ^ Translation
|
-- | Zoom
|
||||||
-> Point2 -- ^ Window size
|
Float ->
|
||||||
-> [GLfloat]
|
-- | Translation
|
||||||
isoMatrix rot zoom (V2 tranx trany) (V2 winx winy) = concatMap vToL
|
Point2 ->
|
||||||
. vToL
|
-- | Window size
|
||||||
. lmt
|
Point2 ->
|
||||||
$ scaleMat (V2 (2*zoom/winx) (2*zoom/winy))
|
[GLfloat]
|
||||||
!*! rotMatr (-rot)
|
isoMatrix rot zoom (V2 tranx trany) (V2 winx winy) =
|
||||||
!*! transMat (V2 (-tranx) (-trany))
|
concatMap vToL
|
||||||
|
. vToL
|
||||||
|
. lmt
|
||||||
|
$ scaleMat (V2 (2 * zoom / winx) (2 * zoom / winy))
|
||||||
|
!*! rotMatr (- rot)
|
||||||
|
!*! transMat (V2 (- tranx) (- trany))
|
||||||
|
|
||||||
lmt :: V4 (V4 a) -> V4 (V4 a)
|
lmt :: V4 (V4 a) -> V4 (V4 a)
|
||||||
lmt = Linear.Matrix.transpose
|
lmt = Linear.Matrix.transpose
|
||||||
|
|
||||||
vToL :: V4 a -> [a]
|
vToL :: V4 a -> [a]
|
||||||
vToL (V4 a b c d) = [a,b,c,d]
|
vToL (V4 a b c d) = [a, b, c, d]
|
||||||
|
|
||||||
perMat :: Float -> V4 (V4 Float)
|
perMat :: Float -> V4 (V4 Float)
|
||||||
perMat x = V4
|
perMat x =
|
||||||
(V4 1 0 0 0)
|
V4
|
||||||
(V4 0 1 0 0)
|
(V4 1 0 0 0)
|
||||||
(V4 0 0 1 0)
|
(V4 0 1 0 0)
|
||||||
(V4 0 0 x 1)
|
(V4 0 0 1 0)
|
||||||
|
(V4 0 0 x 1)
|
||||||
|
|
||||||
scaleMatrix :: Float -> Float -> [V4 Float]
|
scaleMatrix :: Float -> Float -> [V4 Float]
|
||||||
scaleMatrix x = vToL . scaleMat . V2 x
|
scaleMatrix x = vToL . scaleMat . V2 x
|
||||||
|
|
||||||
scaleMat :: Point2 -> V4 (V4 Float)
|
scaleMat :: Point2 -> V4 (V4 Float)
|
||||||
scaleMat (V2 x y) = V4
|
scaleMat (V2 x y) =
|
||||||
(V4 x 0 0 0)
|
V4
|
||||||
(V4 0 y 0 0)
|
(V4 x 0 0 0)
|
||||||
(V4 0 0 1 0)
|
(V4 0 y 0 0)
|
||||||
(V4 0 0 0 1)
|
(V4 0 0 1 0)
|
||||||
|
(V4 0 0 0 1)
|
||||||
|
|
||||||
rotMatr :: Float -> V4 (V4 Float)
|
rotMatr :: Float -> V4 (V4 Float)
|
||||||
rotMatr a = V4
|
rotMatr a =
|
||||||
(V4 (cos a) (sin (-a)) 0 0)
|
V4
|
||||||
(V4 (sin a) (cos a) 0 0)
|
(V4 (cos a) (sin (- a)) 0 0)
|
||||||
(V4 0 0 1 0)
|
(V4 (sin a) (cos a) 0 0)
|
||||||
(V4 0 0 0 1)
|
(V4 0 0 1 0)
|
||||||
|
(V4 0 0 0 1)
|
||||||
|
|
||||||
transMat :: Point2 -> V4 (V4 Float)
|
transMat :: Point2 -> V4 (V4 Float)
|
||||||
transMat (V2 x y) = V4
|
transMat (V2 x y) =
|
||||||
(V4 1 0 0 x)
|
V4
|
||||||
(V4 0 1 0 y)
|
(V4 1 0 0 x)
|
||||||
(V4 0 0 1 0)
|
(V4 0 1 0 y)
|
||||||
(V4 0 0 0 1)
|
(V4 0 0 1 0)
|
||||||
|
(V4 0 0 0 1)
|
||||||
|
|
||||||
vertScale :: Float -> V4 (V4 Float)
|
vertScale :: Float -> V4 (V4 Float)
|
||||||
vertScale s = V4
|
vertScale s =
|
||||||
(V4 1 0 0 0)
|
V4
|
||||||
(V4 0 1 0 0)
|
(V4 1 0 0 0)
|
||||||
(V4 0 0 s 0)
|
(V4 0 1 0 0)
|
||||||
(V4 0 0 0 1)
|
(V4 0 0 s 0)
|
||||||
|
(V4 0 0 0 1)
|
||||||
|
|
||||||
vertTrans :: Float -> V4 (V4 Float)
|
vertTrans :: Float -> V4 (V4 Float)
|
||||||
vertTrans z = V4
|
vertTrans z =
|
||||||
(V4 1 0 0 0)
|
V4
|
||||||
(V4 0 1 0 0)
|
(V4 1 0 0 0)
|
||||||
(V4 0 0 1 (negate z))
|
(V4 0 1 0 0)
|
||||||
(V4 0 0 0 1)
|
(V4 0 0 1 (negate z))
|
||||||
|
(V4 0 0 0 1)
|
||||||
|
|||||||
+25
-13
@@ -5,8 +5,6 @@ module Preload.Render (
|
|||||||
cleanUpRenderPreload,
|
cleanUpRenderPreload,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Shape.Parameters
|
|
||||||
import Shader.Parameters
|
|
||||||
import Control.Concurrent
|
import Control.Concurrent
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
@@ -19,6 +17,8 @@ import Graphics.GL.Core45
|
|||||||
import Shader.AuxAddition
|
import Shader.AuxAddition
|
||||||
import Shader.Compile
|
import Shader.Compile
|
||||||
import Shader.Data
|
import Shader.Data
|
||||||
|
import Shader.Parameters
|
||||||
|
import Shape.Parameters
|
||||||
|
|
||||||
{- BINDING LIST:
|
{- BINDING LIST:
|
||||||
0 base
|
0 base
|
||||||
@@ -49,9 +49,13 @@ preloadRender = do
|
|||||||
shEBO <- setupEBO shPosVAO
|
shEBO <- setupEBO shPosVAO
|
||||||
-- note the shape shader vao is distinct from the position vao, but they
|
-- note the shape shader vao is distinct from the position vao, but they
|
||||||
-- share an EBO
|
-- share an EBO
|
||||||
shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag]
|
shapeshader <-
|
||||||
shapeVerxAttributes
|
makeShaderUsingVBO
|
||||||
pmTriangles shVBO
|
"shape/basic"
|
||||||
|
[vert, frag]
|
||||||
|
shapeVerxAttributes
|
||||||
|
pmTriangles
|
||||||
|
shVBO
|
||||||
glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. eboName)
|
glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. eboName)
|
||||||
|
|
||||||
--setup silhouette edge VAO
|
--setup silhouette edge VAO
|
||||||
@@ -63,8 +67,13 @@ preloadRender = do
|
|||||||
let wallverxstrd = 8
|
let wallverxstrd = 8
|
||||||
wallvbo <- setupVBO (floatSize * wallverxstrd)
|
wallvbo <- setupVBO (floatSize * wallverxstrd)
|
||||||
winvbo <- setupVBO (floatSize * 8)
|
winvbo <- setupVBO (floatSize * 8)
|
||||||
windowshader <- makeShaderUsingVBO
|
windowshader <-
|
||||||
"wall/window" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints winvbo
|
makeShaderUsingVBO
|
||||||
|
"wall/window"
|
||||||
|
[vert, geom, frag]
|
||||||
|
(toFloatVAs [4, 4])
|
||||||
|
pmPoints
|
||||||
|
winvbo
|
||||||
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
|
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
|
||||||
putStrLn "Setup lighting shaders"
|
putStrLn "Setup lighting shaders"
|
||||||
lightingWallShadShad <-
|
lightingWallShadShad <-
|
||||||
@@ -100,7 +109,7 @@ preloadRender = do
|
|||||||
--initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_LINEAR_MIPMAP_NEAREST GL_LINEAR
|
--initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_LINEAR_MIPMAP_NEAREST GL_LINEAR
|
||||||
|
|
||||||
putStrLn "Setup full screen shaders"
|
putStrLn "Setup full screen shaders"
|
||||||
(_,screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2,2]) (concat cornerList)
|
(_, screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2, 2]) (concat cornerList)
|
||||||
alphadivideshader <- makeShaderUsingVAO "texture2D/alphaDivide" [vert, frag] pmTriangleStrip screentexturevao
|
alphadivideshader <- makeShaderUsingVAO "texture2D/alphaDivide" [vert, frag] pmTriangleStrip screentexturevao
|
||||||
fsShad <- makeShaderUsingVAO "texture/simple" [vert, frag] pmTriangleStrip screentexturevao
|
fsShad <- makeShaderUsingVAO "texture/simple" [vert, frag] pmTriangleStrip screentexturevao
|
||||||
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] pmTriangleStrip screentexturevao
|
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] pmTriangleStrip screentexturevao
|
||||||
@@ -120,10 +129,14 @@ preloadRender = do
|
|||||||
putStrLn "Setup chasm VBO, shader"
|
putStrLn "Setup chasm VBO, shader"
|
||||||
let chasmverxstrd = 3
|
let chasmverxstrd = 3
|
||||||
chasmvbo <- setupVBOStatic (floatSize * chasmverxstrd)
|
chasmvbo <- setupVBOStatic (floatSize * chasmverxstrd)
|
||||||
chasmshader <- makeShaderUsingVBO "positional/blank" [vert, frag] (toFloatVAs [3]) pmTriangles chasmvbo
|
chasmshader <-
|
||||||
|
makeShaderUsingVBO
|
||||||
|
"positional/blank"
|
||||||
|
[vert, frag]
|
||||||
|
(toFloatVAs [3])
|
||||||
|
pmTriangles
|
||||||
|
chasmvbo
|
||||||
putStrLn "Setup cloud VBO, shader"
|
putStrLn "Setup cloud VBO, shader"
|
||||||
--let cloudverxsizes = [4, 4, 4, 4]
|
|
||||||
let cloudverxsizes = [4, 4, 4]
|
let cloudverxsizes = [4, 4, 4]
|
||||||
cloudvbo <- setupVBO (floatSize * sum cloudverxsizes)
|
cloudvbo <- setupVBO (floatSize * sum cloudverxsizes)
|
||||||
(cloudshader, cloudebo) <-
|
(cloudshader, cloudebo) <-
|
||||||
@@ -151,7 +164,6 @@ preloadRender = do
|
|||||||
-- reset to default framebuffer, ready for drawing direct to screen
|
-- reset to default framebuffer, ready for drawing direct to screen
|
||||||
glBindFramebuffer GL_FRAMEBUFFER 0
|
glBindFramebuffer GL_FRAMEBUFFER 0
|
||||||
|
|
||||||
|
|
||||||
initializeGLState
|
initializeGLState
|
||||||
putStrLn "Return preload"
|
putStrLn "Return preload"
|
||||||
return $
|
return $
|
||||||
@@ -177,7 +189,6 @@ preloadRender = do
|
|||||||
, _fboHalf1 = fboHalf1Name
|
, _fboHalf1 = fboHalf1Name
|
||||||
, _fboHalf2 = fboHalf2Name
|
, _fboHalf2 = fboHalf2Name
|
||||||
, _fboLighting = fboLightingName
|
, _fboLighting = fboLightingName
|
||||||
-- , _fboShadow = fboShadowName
|
|
||||||
, _fboBase = fboBaseName
|
, _fboBase = fboBaseName
|
||||||
, _fboCloud = fboCloudName
|
, _fboCloud = fboCloudName
|
||||||
, _fboBloom = fboBloomName
|
, _fboBloom = fboBloomName
|
||||||
@@ -221,6 +232,7 @@ cornerList =
|
|||||||
initializeGLState :: IO ()
|
initializeGLState :: IO ()
|
||||||
initializeGLState = do
|
initializeGLState = do
|
||||||
glEnable GL_DEPTH_TEST
|
glEnable GL_DEPTH_TEST
|
||||||
|
glEnable GL_STENCIL_TEST
|
||||||
|
|
||||||
cleanUpRenderPreload :: RenderData -> IO ()
|
cleanUpRenderPreload :: RenderData -> IO ()
|
||||||
cleanUpRenderPreload _ = return ()
|
cleanUpRenderPreload _ = return ()
|
||||||
|
|||||||
+7
-6
@@ -98,7 +98,7 @@ renderLightingNoShadows positiontexture normaltexture lightPoints pdata = do
|
|||||||
(fromIntegral (4 :: Int))
|
(fromIntegral (4 :: Int))
|
||||||
--cleanup: may not be necessary, depending on what comes after...
|
--cleanup: may not be necessary, depending on what comes after...
|
||||||
glDisable GL_CULL_FACE
|
glDisable GL_CULL_FACE
|
||||||
glDisable GL_STENCIL_TEST
|
-- glDisable GL_STENCIL_TEST
|
||||||
|
|
||||||
|
|
||||||
renderFlatLighting :: RenderData -> IO ()
|
renderFlatLighting :: RenderData -> IO ()
|
||||||
@@ -155,9 +155,8 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
|
|||||||
flip VFSM.mapM_ (VFSM.fromList lightPoints) $ \(V3 x y z, rad, V3 r g b) -> do
|
flip VFSM.mapM_ (VFSM.fromList lightPoints) $ \(V3 x y z, rad, V3 r g b) -> do
|
||||||
-- note that the stencil shadows rely on the depth buffer
|
-- note that the stencil shadows rely on the depth buffer
|
||||||
glDepthFunc GL_LESS
|
glDepthFunc GL_LESS
|
||||||
-- setup stencil
|
|
||||||
glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE
|
glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE
|
||||||
glStencilMask 127 -- so we only affect the last 7 bits
|
-- setup stencil
|
||||||
with 0 $
|
with 0 $
|
||||||
glClearNamedFramebufferiv
|
glClearNamedFramebufferiv
|
||||||
(pdata ^. fboLighting . _1 . unFBO)
|
(pdata ^. fboLighting . _1 . unFBO)
|
||||||
@@ -206,16 +205,18 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
|
|||||||
glDisable GL_CULL_FACE
|
glDisable GL_CULL_FACE
|
||||||
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_FALSE
|
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_FALSE
|
||||||
glStencilFunc GL_EQUAL 0 255
|
glStencilFunc GL_EQUAL 0 255
|
||||||
glUseProgram (ltextShad ^. shaderUINT) --Just (_shadProg ltextShad)
|
glUseProgram (ltextShad ^. shaderUINT)
|
||||||
glUniform3f 0 x y z
|
glUniform3f 0 x y z
|
||||||
glUniform4f 1 r g b rad
|
glUniform4f 1 r g b rad
|
||||||
glBindVertexArray $ ltextShad ^. shaderVAO . vaoName -- Just (_vao $ _shadVAO ltextShad)
|
glBindVertexArray $ ltextShad ^. shaderVAO . vaoName
|
||||||
glDrawArrays
|
glDrawArrays
|
||||||
(_unPrimitiveMode (_shaderPrimitive ltextShad))
|
(_unPrimitiveMode (_shaderPrimitive ltextShad))
|
||||||
0
|
0
|
||||||
(fromIntegral (4 :: Int))
|
(fromIntegral (4 :: Int))
|
||||||
--cleanup: may not be necessary, depending on what comes after...
|
--cleanup: may not be necessary, depending on what comes after...
|
||||||
glDisable GL_STENCIL_TEST
|
-- glDisable GL_STENCIL_TEST
|
||||||
|
glStencilFunc GL_NOTEQUAL 128 255
|
||||||
|
glStencilOp GL_KEEP GL_KEEP GL_KEEP
|
||||||
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_TRUE
|
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_TRUE
|
||||||
|
|
||||||
-- assumes that vertices have already been sent to the shader
|
-- assumes that vertices have already been sent to the shader
|
||||||
|
|||||||
@@ -2700,6 +2700,7 @@ brightX src/Color.hs 116;" f
|
|||||||
btSPic src/Dodge/Render/ShapePicture.hs 129;" f
|
btSPic src/Dodge/Render/ShapePicture.hs 129;" f
|
||||||
btText src/Dodge/Inventory/SelectionList.hs 237;" f
|
btText src/Dodge/Inventory/SelectionList.hs 237;" f
|
||||||
bufferEBO src/Shader/Bind.hs 28;" f
|
bufferEBO src/Shader/Bind.hs 28;" f
|
||||||
|
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 420;" f
|
||||||
bufferPokedVBO src/Shader/Bind.hs 19;" f
|
bufferPokedVBO src/Shader/Bind.hs 19;" f
|
||||||
bufferShaderLayers src/Shader/Bind.hs 36;" f
|
bufferShaderLayers src/Shader/Bind.hs 36;" f
|
||||||
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
|
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
|
||||||
@@ -2792,7 +2793,7 @@ clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f
|
|||||||
clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f
|
clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f
|
||||||
cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f
|
cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f
|
||||||
cleanUpPreload src/Preload.hs 10;" f
|
cleanUpPreload src/Preload.hs 10;" f
|
||||||
cleanUpRenderPreload src/Preload/Render.hs 225;" f
|
cleanUpRenderPreload src/Preload/Render.hs 236;" f
|
||||||
cleanUpSoundPreload src/Preload.hs 15;" f
|
cleanUpSoundPreload src/Preload.hs 15;" f
|
||||||
cleanupHalted src/Sound.hs 117;" f
|
cleanupHalted src/Sound.hs 117;" f
|
||||||
cleatLabel src/Dodge/Cleat.hs 30;" f
|
cleatLabel src/Dodge/Cleat.hs 30;" f
|
||||||
@@ -2878,7 +2879,7 @@ copier src/Dodge/Item/Scope.hs 88;" f
|
|||||||
copierItemUpdate src/Dodge/Creature/State.hs 131;" f
|
copierItemUpdate src/Dodge/Creature/State.hs 131;" f
|
||||||
copyItemToFloor src/Dodge/FloorItem.hs 14;" f
|
copyItemToFloor src/Dodge/FloorItem.hs 14;" f
|
||||||
corDoor src/Dodge/Room/Room.hs 385;" f
|
corDoor src/Dodge/Room/Room.hs 385;" f
|
||||||
cornerList src/Preload/Render.hs 203;" f
|
cornerList src/Preload/Render.hs 214;" f
|
||||||
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
|
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
|
||||||
corridor src/Dodge/Room/Corridor.hs 17;" f
|
corridor src/Dodge/Room/Corridor.hs 17;" f
|
||||||
corridorBoss src/Dodge/LockAndKey.hs 133;" f
|
corridorBoss src/Dodge/LockAndKey.hs 133;" f
|
||||||
@@ -3557,7 +3558,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
|
|||||||
getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f
|
getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f
|
||||||
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f
|
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f
|
||||||
getDebugMouseOver src/Dodge/Update.hs 377;" f
|
getDebugMouseOver src/Dodge/Update.hs 377;" f
|
||||||
getDistortions src/Dodge/Render.hs 438;" f
|
getDistortions src/Dodge/Render.hs 426;" f
|
||||||
getEdgesCrossing src/Dodge/Path.hs 42;" f
|
getEdgesCrossing src/Dodge/Path.hs 42;" f
|
||||||
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
|
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
|
||||||
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
|
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
|
||||||
@@ -3709,7 +3710,7 @@ initWallZoning src/Dodge/Wall/Zone.hs 12;" f
|
|||||||
initialRoomTree src/Dodge/Floor.hs 24;" f
|
initialRoomTree src/Dodge/Floor.hs 24;" f
|
||||||
initialWorld src/Dodge/Initialisation.hs 15;" f
|
initialWorld src/Dodge/Initialisation.hs 15;" f
|
||||||
initialisePlaying src/Sound.hs 77;" f
|
initialisePlaying src/Sound.hs 77;" f
|
||||||
initializeGLState src/Preload/Render.hs 221;" f
|
initializeGLState src/Preload/Render.hs 232;" f
|
||||||
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
|
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
|
||||||
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
|
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
|
||||||
initializeTexture2D src/Framebuffer/Update.hs 209;" f
|
initializeTexture2D src/Framebuffer/Update.hs 209;" f
|
||||||
@@ -3812,7 +3813,7 @@ isUsedLnkUnplaced src/Dodge/PlacementSpot.hs 174;" f
|
|||||||
isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
|
isValidCommand src/Dodge/Debug/Terminal.hs 134;" f
|
||||||
isVowel src/StringHelp.hs 8;" f
|
isVowel src/StringHelp.hs 8;" f
|
||||||
isWalkable src/Dodge/WorldEvent/ThingsHit.hs 177;" f
|
isWalkable src/Dodge/WorldEvent/ThingsHit.hs 177;" f
|
||||||
isoMatrix src/MatrixHelper.hs 30;" f
|
isoMatrix src/MatrixHelper.hs 35;" f
|
||||||
isotriBWH src/Geometry/Polygon.hs 22;" f
|
isotriBWH src/Geometry/Polygon.hs 22;" f
|
||||||
itDim src/Dodge/Item/InvSize.hs 21;" f
|
itDim src/Dodge/Item/InvSize.hs 21;" f
|
||||||
itEffectOnDrop src/Dodge/Item/BackgroundEffect.hs 67;" f
|
itEffectOnDrop src/Dodge/Item/BackgroundEffect.hs 67;" f
|
||||||
@@ -3954,7 +3955,7 @@ listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f
|
|||||||
listGuard src/Dodge/Creature/ReaderUpdate.hs 195;" f
|
listGuard src/Dodge/Creature/ReaderUpdate.hs 195;" f
|
||||||
listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f
|
listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f
|
||||||
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
|
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
|
||||||
lmt src/MatrixHelper.hs 43;" f
|
lmt src/MatrixHelper.hs 53;" f
|
||||||
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f
|
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f
|
||||||
loadDodgeConfig src/Dodge/Config.hs 30;" f
|
loadDodgeConfig src/Dodge/Config.hs 30;" f
|
||||||
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
|
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
|
||||||
@@ -4317,7 +4318,7 @@ pbsHit src/Dodge/WorldEvent/ThingsHit.hs 95;" f
|
|||||||
peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f
|
peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f
|
||||||
pedestalRoom src/Dodge/Room/Containing.hs 50;" f
|
pedestalRoom src/Dodge/Room/Containing.hs 50;" f
|
||||||
penThing src/Dodge/Bullet.hs 214;" f
|
penThing src/Dodge/Bullet.hs 214;" f
|
||||||
perMat src/MatrixHelper.hs 49;" f
|
perMat src/MatrixHelper.hs 59;" f
|
||||||
perceptionUpdate src/Dodge/Creature/Perception.hs 24;" f
|
perceptionUpdate src/Dodge/Creature/Perception.hs 24;" f
|
||||||
performAction src/Dodge/Creature/Action.hs 54;" f
|
performAction src/Dodge/Creature/Action.hs 54;" f
|
||||||
performActions src/Dodge/Creature/Action.hs 39;" f
|
performActions src/Dodge/Creature/Action.hs 39;" f
|
||||||
@@ -4685,7 +4686,7 @@ roomsContaining' src/Dodge/Room/Containing.hs 25;" f
|
|||||||
rootNotrootEff src/Dodge/Item/BackgroundEffect.hs 28;" f
|
rootNotrootEff src/Dodge/Item/BackgroundEffect.hs 28;" f
|
||||||
rose src/Color.hs 20;" f
|
rose src/Color.hs 20;" f
|
||||||
rotD src/Padding.hs 44;" f
|
rotD src/Padding.hs 44;" f
|
||||||
rotMatr src/MatrixHelper.hs 66;" f
|
rotMatr src/MatrixHelper.hs 78;" f
|
||||||
rotU src/Padding.hs 39;" f
|
rotU src/Padding.hs 39;" f
|
||||||
rotate src/Picture/Base.hs 153;" f
|
rotate src/Picture/Base.hs 153;" f
|
||||||
rotate3 src/Geometry/Vector3D.hs 48;" f
|
rotate3 src/Geometry/Vector3D.hs 48;" f
|
||||||
@@ -4738,8 +4739,8 @@ sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f
|
|||||||
scToTS src/Dodge/Event/Input.hs 34;" f
|
scToTS src/Dodge/Event/Input.hs 34;" f
|
||||||
scale src/Picture/Base.hs 149;" f
|
scale src/Picture/Base.hs 149;" f
|
||||||
scale3 src/Picture/Base.hs 145;" f
|
scale3 src/Picture/Base.hs 145;" f
|
||||||
scaleMat src/MatrixHelper.hs 59;" f
|
scaleMat src/MatrixHelper.hs 70;" f
|
||||||
scaleMatrix src/MatrixHelper.hs 56;" f
|
scaleMatrix src/MatrixHelper.hs 67;" f
|
||||||
scaleSH src/Shape.hs 269;" f
|
scaleSH src/Shape.hs 269;" f
|
||||||
scalp src/Dodge/Creature/Picture.hs 93;" f
|
scalp src/Dodge/Creature/Picture.hs 93;" f
|
||||||
scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f
|
scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f
|
||||||
@@ -4826,7 +4827,7 @@ setTiles src/Dodge/Layout.hs 67;" f
|
|||||||
setTreeInts src/Dodge/Room/Tutorial.hs 98;" f
|
setTreeInts src/Dodge/Room/Tutorial.hs 98;" f
|
||||||
setViewDistance src/Dodge/Update/Camera.hs 239;" f
|
setViewDistance src/Dodge/Update/Camera.hs 239;" f
|
||||||
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
|
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
|
||||||
setViewport src/Dodge/Render.hs 443;" f
|
setViewport src/Dodge/Render.hs 431;" f
|
||||||
setVol src/Dodge/Config.hs 47;" f
|
setVol src/Dodge/Config.hs 47;" f
|
||||||
setWristShieldPos src/Dodge/Equipment.hs 49;" f
|
setWristShieldPos src/Dodge/Equipment.hs 49;" f
|
||||||
setWristShieldPos src/Dodge/Euse.hs 38;" f
|
setWristShieldPos src/Dodge/Euse.hs 38;" f
|
||||||
@@ -5194,7 +5195,7 @@ tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" f
|
|||||||
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
|
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
|
||||||
tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f
|
tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f
|
||||||
tranRot src/Picture/Base.hs 124;" f
|
tranRot src/Picture/Base.hs 124;" f
|
||||||
transMat src/MatrixHelper.hs 73;" f
|
transMat src/MatrixHelper.hs 86;" f
|
||||||
transToHandle src/Dodge/Item/HeldOffset.hs 26;" f
|
transToHandle src/Dodge/Item/HeldOffset.hs 26;" f
|
||||||
translate src/Picture/Base.hs 116;" f
|
translate src/Picture/Base.hs 116;" f
|
||||||
translate3 src/Picture/Base.hs 120;" f
|
translate3 src/Picture/Base.hs 120;" f
|
||||||
@@ -5455,15 +5456,15 @@ vInverse src/Geometry/Vector.hs 154;" f
|
|||||||
vNormal src/Geometry/Vector.hs 149;" f
|
vNormal src/Geometry/Vector.hs 149;" f
|
||||||
vNormaly src/Geometry/Vector3D.hs 72;" f
|
vNormaly src/Geometry/Vector3D.hs 72;" f
|
||||||
vShape src/Dodge/Placement/Instance/LightSource.hs 130;" f
|
vShape src/Dodge/Placement/Instance/LightSource.hs 130;" f
|
||||||
vToL src/MatrixHelper.hs 46;" f
|
vToL src/MatrixHelper.hs 56;" f
|
||||||
vToQuat src/Quaternion.hs 42;" f
|
vToQuat src/Quaternion.hs 42;" f
|
||||||
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
|
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
|
||||||
vasTightStride src/Shader/Compile.hs 297;" f
|
vasTightStride src/Shader/Compile.hs 297;" f
|
||||||
vecBetweenSpeed src/Dodge/Base.hs 146;" f
|
vecBetweenSpeed src/Dodge/Base.hs 146;" f
|
||||||
vecTurnTo src/Dodge/Movement/Turn.hs 19;" f
|
vecTurnTo src/Dodge/Movement/Turn.hs 19;" f
|
||||||
vert src/Shader/Data.hs 102;" f
|
vert src/Shader/Data.hs 102;" f
|
||||||
vertScale src/MatrixHelper.hs 80;" f
|
vertScale src/MatrixHelper.hs 94;" f
|
||||||
vertTrans src/MatrixHelper.hs 87;" f
|
vertTrans src/MatrixHelper.hs 102;" f
|
||||||
verticalPipe src/Dodge/Picture.hs 19;" f
|
verticalPipe src/Dodge/Picture.hs 19;" f
|
||||||
verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f
|
verticalPipe src/Dodge/Placement/Instance/Pipe.hs 6;" f
|
||||||
verticalWire src/Dodge/Wire.hs 23;" f
|
verticalWire src/Dodge/Wire.hs 23;" f
|
||||||
|
|||||||
Reference in New Issue
Block a user