Cleanup shadows
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
#version 450 core
|
||||
layout (triangles) in;
|
||||
layout (triangle_strip, max_vertices = 3) out;
|
||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||
layout(location=0)uniform vec3 lightPos;
|
||||
in float drawbit[];
|
||||
// the following code is duplicated in lineShadow.geom, should not be changed on its own
|
||||
vec4 projNear (vec4 pos)
|
||||
{
|
||||
// note we project to a specific height
|
||||
// this is quite brittle, not ideal
|
||||
vec3 dir = pos.xyz - lightPos ;
|
||||
float a = (100 - pos.z) / dir.z ;
|
||||
vec2 xy = (pos.xyz + a * dir).xy ;
|
||||
return vec4 ( xy, 100 , 1) ;
|
||||
}
|
||||
void main()
|
||||
{
|
||||
vec4 p0 = gl_in[0].gl_Position ;
|
||||
vec4 p1 = gl_in[1].gl_Position ;
|
||||
vec4 p2 = gl_in[2].gl_Position ;
|
||||
if ( //if Light Source is below all vertices, draw cap
|
||||
// TODO think about when LS is beside the object
|
||||
(drawbit[0] == 1)
|
||||
&& ( p0.z - lightPos.z > 0 )
|
||||
&& ( p1.z - lightPos.z > 0 )
|
||||
&& ( p2.z - lightPos.z > 0 )
|
||||
)
|
||||
{
|
||||
// the front cap
|
||||
vec4 v1 = vec4 (0,0,1,0) ;
|
||||
gl_Position = theMat * projNear(p0); EmitVertex();
|
||||
gl_Position = theMat * projNear(p2); EmitVertex();
|
||||
gl_Position = theMat * projNear(p1); EmitVertex();
|
||||
EndPrimitive();
|
||||
}
|
||||
else {}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
#version 450 core
|
||||
// an attempt to test whether a geometry surface occludes the camera from a
|
||||
// light source
|
||||
layout (triangles) in;
|
||||
layout (triangle_strip, max_vertices = 4) out;
|
||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||
uniform vec3 lightPos;
|
||||
uniform vec2 camPos;
|
||||
void main()
|
||||
{
|
||||
vec3 p0 = gl_in[0].gl_Position.xyz ;
|
||||
vec3 p1 = gl_in[1].gl_Position.xyz ;
|
||||
vec3 p2 = gl_in[2].gl_Position.xyz ;
|
||||
|
||||
// first determine intersection point (if any)
|
||||
|
||||
vec3 u = p1 - p0 ;
|
||||
vec3 v = p2 - p0 ;
|
||||
vec3 n = cross (u,v) ;
|
||||
vec3 dir = vec3 (camPos, 100) - lightPos ;
|
||||
vec3 w0 = p0 - lightPos ;
|
||||
float a = dot(n, w0) ;
|
||||
float b = dot(n,dir) ;
|
||||
if (abs(b) < 0.00001) {}
|
||||
else {
|
||||
float r = a / b ;
|
||||
if (r < 0.0) {}
|
||||
else {
|
||||
vec3 ip = lightPos + r * dir ;
|
||||
float uu, uv, vv, wu, wv, D;
|
||||
uu = dot(u,u);
|
||||
uv = dot(u,v);
|
||||
vv = dot(v,v);
|
||||
vec3 w = ip - p0;
|
||||
wu = dot (w,u);
|
||||
wv = dot (w,v);
|
||||
D = uv * uv - uu * vv;
|
||||
//get and test parametric coords
|
||||
float s, t;
|
||||
s = (uv * wv - vv * wu) / D;
|
||||
if (s < 0.0 || s > 1.0) {}
|
||||
else
|
||||
{
|
||||
t = (uv * wu - uu * wv) / D;
|
||||
if (t < 0.0 || (s + t) > 1.0) {}
|
||||
else
|
||||
{
|
||||
gl_Position = vec4(-1,-1,50,1); EmitVertex();
|
||||
gl_Position = vec4(-1, 1,50,1); EmitVertex();
|
||||
gl_Position = vec4( 1,-1,50,1); EmitVertex();
|
||||
gl_Position = vec4( 1, 1,50,1); EmitVertex();
|
||||
EndPrimitive();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
#version 450 core
|
||||
layout (points) in;
|
||||
layout (triangle_strip, max_vertices = 4) out;
|
||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||
out float lum;
|
||||
out vec2 dField;
|
||||
void main()
|
||||
{
|
||||
lum = gl_in[0].gl_Position.w;
|
||||
vec4 cenPos = vec4( gl_in[0].gl_Position.xy, 0.1 , 1);
|
||||
float gRad = gl_in[0].gl_Position.z;
|
||||
|
||||
dField = vec2 ( 1, 1);
|
||||
gl_Position = theMat * vec4 (cenPos.x + gRad, cenPos.y + gRad, 0.1 , 1);
|
||||
EmitVertex();
|
||||
dField = vec2 (-1, 1);
|
||||
gl_Position = theMat * vec4 (cenPos.x - gRad, cenPos.y + gRad, 0.1 , 1);
|
||||
EmitVertex();
|
||||
dField = vec2 ( 1,-1);
|
||||
gl_Position = theMat * vec4 (cenPos.x + gRad, cenPos.y - gRad, 0.1 , 1);
|
||||
EmitVertex();
|
||||
dField = vec2 (-1,-1);
|
||||
gl_Position = theMat * vec4 (cenPos.x - gRad, cenPos.y - gRad, 0.1 , 1);
|
||||
EmitVertex();
|
||||
|
||||
EndPrimitive();
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
#version 450 core
|
||||
layout(lines_adjacency) in;
|
||||
layout(triangle_strip, max_vertices = 4) out;
|
||||
layout(std140, binding = 0) uniform TheMat { mat4 theMat; };
|
||||
layout(location=0) uniform vec3 lightPos;
|
||||
layout(location=1) uniform float radiusUniform;
|
||||
float closestPointOnLineParam3 (vec3 a, vec3 b, vec3 p) {
|
||||
return dot(p - a,b-a) / dot(b-a,b-a);
|
||||
}
|
||||
vec3 closestPointOnSeg3 (vec3 a,vec3 b, vec3 p) {
|
||||
float x = closestPointOnLineParam3(a,b,p);
|
||||
if (x < 0) {
|
||||
return a;
|
||||
} else{ if (x > 1) { return b; }
|
||||
{ return a + (x * (b- a));}
|
||||
}
|
||||
}
|
||||
vec4 shift(vec4 p) { return (vec4(p.xyz + (10000 * (p.xyz - lightPos)), 1)); }
|
||||
vec4 shiftBy(float x, vec4 p) {
|
||||
return (vec4(lightPos + (x * normalize(p.xyz - lightPos)), 1));
|
||||
}
|
||||
// copied from lighting/cap.geom, should not be changed on its own
|
||||
vec4 projNear(vec4 pos) {
|
||||
// note we project to a specific height
|
||||
// this is quite brittle, not ideal
|
||||
vec3 dir = pos.xyz - lightPos;
|
||||
float a = (100 - pos.z) / dir.z;
|
||||
vec2 xy = (pos.xyz + a * dir).xy;
|
||||
return vec4(xy, 100, 1);
|
||||
}
|
||||
vec4 shiftNear(vec4 pos)
|
||||
{
|
||||
vec4 sp = shift(pos);
|
||||
if (sp.z > 100) {
|
||||
return projNear(pos);
|
||||
} else {
|
||||
return sp;
|
||||
}
|
||||
}
|
||||
void main() {
|
||||
vec4 p0 = gl_in[0].gl_Position;
|
||||
vec4 p1 = gl_in[1].gl_Position;
|
||||
vec3 closepoint = closestPointOnSeg3(p0.xyz,p1.xyz,lightPos);
|
||||
float ru2 = radiusUniform * radiusUniform;
|
||||
vec4 mid = 0.5 * (p0 + p1);
|
||||
vec3 n0a = gl_in[2].gl_Position.xyz;
|
||||
vec3 n1a = gl_in[3].gl_Position.xyz;
|
||||
vec3 n0 = cross(p1.xyz - p0.xyz, n0a - p0.xyz);
|
||||
vec3 n1 = cross(p0.xyz - p1.xyz, n1a - p1.xyz);
|
||||
vec3 lightDir = p0.xyz - lightPos.xyz;
|
||||
vec3 lightDir2 = p1.xyz - lightPos.xyz;
|
||||
// first test if the edge is part of the silhouette
|
||||
// that is, if the normals of the faces connected by the edge point are in
|
||||
// "different directions" wrt the light direction
|
||||
if (dot(n0, lightDir) * dot(n1, lightDir) <= 0 &&
|
||||
(dot(lightDir, lightDir) < ru2 || dot(lightDir2, lightDir2) < ru2))
|
||||
// using <= rather than < seems to get rid of overlapping shadow
|
||||
// artefacts
|
||||
{
|
||||
vec4 p2 = shiftNear(p0);
|
||||
vec4 p3 = shiftNear(p1);
|
||||
gl_Position = theMat * p0;
|
||||
EmitVertex();
|
||||
if (dot(n0, lightDir) > 0) {
|
||||
gl_Position = theMat * p2;
|
||||
EmitVertex();
|
||||
gl_Position = theMat * p1;
|
||||
EmitVertex();
|
||||
} else {
|
||||
gl_Position = theMat * p1;
|
||||
EmitVertex();
|
||||
gl_Position = theMat * p2;
|
||||
EmitVertex();
|
||||
}
|
||||
gl_Position = theMat * p3;
|
||||
EmitVertex();
|
||||
EndPrimitive();
|
||||
} else {
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,29 @@
|
||||
#version 450 core
|
||||
struct PosColNorm { vec4 pos; vec4 dummy; };
|
||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||
layout (std140, binding = 1) uniform TheLight { vec4 lightPos; vec4 colrad; };
|
||||
layout (std430, binding = 3) readonly buffer Data { PosColNorm data[]; };
|
||||
layout (std430, binding = 5) readonly buffer Indices { uint indices[]; };
|
||||
layout(location=0)uniform vec3 lightPos;
|
||||
layout(location=1)uniform float radiusUniform;
|
||||
float closestPointOnLineParam3 (vec3 a, vec3 b, vec3 p) {
|
||||
return dot(p - a,b-a) / dot(b-a,b-a);
|
||||
}
|
||||
vec3 closestPointOnSeg3 (vec3 a,vec3 b, vec3 p) {
|
||||
float x = closestPointOnLineParam3(a,b,p);
|
||||
if (x < 0) {
|
||||
return a;
|
||||
} else{ return (x > 1 ? b: a + (x * (b- a))); }
|
||||
return (x < 0
|
||||
? a
|
||||
: (x > 1
|
||||
? b
|
||||
: a + (x * (b- a)))) ;
|
||||
}
|
||||
vec4 shift(vec4 p) { return (vec4(p.xyz + (10000 * (p.xyz - lightPos)), 1)); }
|
||||
vec4 shift(vec4 p) { return (vec4(p.xyz + (10000 * (p.xyz - lightPos.xyz)), 1)); }
|
||||
vec4 shiftBy(float x, vec4 p) {
|
||||
return (vec4(lightPos + (x * normalize(p.xyz - lightPos)), 1));
|
||||
return (vec4(lightPos.xyz + (x * normalize(p.xyz - lightPos.xyz)), 1));
|
||||
}
|
||||
vec4 projNear (vec4 pos)
|
||||
{
|
||||
// note we project to a specific height
|
||||
// this is quite brittle, not ideal
|
||||
vec3 dir = pos.xyz - lightPos ;
|
||||
vec3 dir = pos.xyz - lightPos.xyz ;
|
||||
float a = (100 - pos.z) / dir.z ;
|
||||
vec2 xy = (pos.xyz + a * dir).xy ;
|
||||
return vec4 ( xy, 100 , 1) ;
|
||||
@@ -32,10 +33,12 @@ vec4 shiftNear(vec4 pos)
|
||||
vec4 sp = shift(pos);
|
||||
return (sp.z > 100 ? projNear(pos) : sp);
|
||||
}
|
||||
int ks[6] =
|
||||
{0,1,2 // 2--3
|
||||
,2,1,3 // | |
|
||||
}; // 0--1
|
||||
// Output 6 vertices for 4 data inputs
|
||||
int ks[6] = // Inputdata: n1a Shadow:
|
||||
{0,1,2 // 2--3 / p2--p3
|
||||
,2,1,3 // | | p0---p1 / |
|
||||
}; // 0--1 / / |
|
||||
// n0a p0----p1
|
||||
void main()
|
||||
{
|
||||
int k = ks[gl_VertexID % 6];
|
||||
@@ -44,8 +47,8 @@ void main()
|
||||
vec4 p1 = data[indices[i0+1]].pos;
|
||||
vec3 n0a = data[indices[i0+2]].pos.xyz;
|
||||
vec3 n1a = data[indices[i0+3]].pos.xyz;
|
||||
vec3 closepoint = closestPointOnSeg3(p0.xyz,p1.xyz,lightPos);
|
||||
float ru2 = radiusUniform * radiusUniform;
|
||||
vec3 closepoint = closestPointOnSeg3(p0.xyz,p1.xyz,lightPos.xyz);
|
||||
float ru2 = colrad.w * colrad.w;
|
||||
vec4 mid = 0.5 * (p0 + p1);
|
||||
vec3 n0 = cross(p1.xyz - p0.xyz, n0a - p0.xyz);
|
||||
vec3 n1 = cross(p0.xyz - p1.xyz, n1a - p1.xyz);
|
||||
@@ -53,15 +56,15 @@ void main()
|
||||
vec3 lightDir2 = p1.xyz - lightPos.xyz;
|
||||
vec4 p2 = shiftNear(p0);
|
||||
vec4 p3 = shiftNear(p1);
|
||||
// first test if the edge is part of the silhouette
|
||||
// that is, if the normals of the faces connected by the edge point are in
|
||||
// test if the edge is part of the silhouette
|
||||
// that is, if the slopes of the faces connected to the edge are in
|
||||
// "different directions" wrt the light direction
|
||||
if (dot(n0, lightDir) * dot(n1, lightDir) <= 0 &&
|
||||
(dot(lightDir, lightDir) < ru2 || dot(lightDir2, lightDir2) < ru2))
|
||||
// using <= rather than < seems to get rid of overlapping shadow
|
||||
// artefacts
|
||||
{
|
||||
if (dot(n0, lightDir) > 0)
|
||||
if (dot(n0, lightDir) < 0)
|
||||
{
|
||||
vec4 sp[4] = {p1,p0,p3,p2};
|
||||
gl_Position = theMat * sp[k];}
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
#version 450 core
|
||||
layout(points) in;
|
||||
//layout(triangle_strip, max_vertices = 18) out;
|
||||
layout(triangle_strip, max_vertices = 9) out;
|
||||
layout(std140, binding = 0) uniform TheMat { mat4 theMat; };
|
||||
layout(location=0) uniform vec3 lightPos;
|
||||
layout(location=1) uniform float rad;
|
||||
//float rad = rad;
|
||||
// Preprocessed to include ../functions.glsl
|
||||
float closestPointOnLineParam (vec2 a, vec2 b, vec2 p) {
|
||||
return dot(p - a,b-a) / dot(b-a,b-a);
|
||||
}
|
||||
vec2 closestPointOnSeg (vec2 a,vec2 b, vec2 p) {
|
||||
float x = closestPointOnLineParam(a,b,p);
|
||||
if (x < 0) {
|
||||
return a;
|
||||
} else{ if (x > 1) { return b; }
|
||||
{ return a + (x * (b- a));}
|
||||
}
|
||||
}
|
||||
// End include 2023-03-13 15:33:44.438312149 UTC
|
||||
vec2 closestPointOnLine (vec2 a,vec2 b, vec2 p) {
|
||||
float x = closestPointOnLineParam(a,b,p);
|
||||
return a + (x * (b- a));
|
||||
}
|
||||
vec2 invclosestPointOnLine (vec2 a,vec2 b, vec2 p) {
|
||||
float x = dot (p-a,p-a)/ dot(p-a,b-a);
|
||||
return a + x*(b- a);
|
||||
}
|
||||
vec2 shift(vec2 p) {
|
||||
return vec2(lightPos.xy + (rad * normalize(p - lightPos.xy)));
|
||||
}
|
||||
float detV(vec2 p, vec2 q) {
|
||||
return p.x*q.y - p.y*q.x;
|
||||
}
|
||||
float isLHS(vec2 p, vec2 q) {
|
||||
return sign(-detV(p,q));
|
||||
}
|
||||
// the following does NOT check for division by zero: do not reuse this unless
|
||||
// you are certain this cannot happen
|
||||
vec2 intersectLL(vec2 p1,vec2 p2,vec2 q1,vec2 q2){
|
||||
float den = detV (p1-p2,q1-q2);
|
||||
float t = detV (p1-q1,q1-q2);
|
||||
return p1 + (t/den)*(p2-p1);
|
||||
}
|
||||
// constructs a "bridge" shape
|
||||
void main() {
|
||||
vec2 p1 = gl_in[0].gl_Position.xy;
|
||||
vec2 p2 = gl_in[0].gl_Position.zw;
|
||||
vec2 closepoint = closestPointOnSeg(p1,p2,lightPos.xy);
|
||||
if (isLHS(p1 - lightPos.xy, p2 - lightPos.xy) < 0 && distance(closepoint,lightPos.xy) < rad) {
|
||||
vec2 xxxy = p1 + (0.25 * (p2 -p1));
|
||||
vec2 xt = shift(xxxy);
|
||||
vec2 xo = invclosestPointOnLine(lightPos.xy,p1,xt);
|
||||
vec2 xyyy = p1 + (0.75 * (p2 -p1));
|
||||
vec2 yt = shift(xyyy);
|
||||
vec2 yo = invclosestPointOnLine(lightPos.xy,p2,yt);
|
||||
|
||||
vec2 xoo = (distance(xo, lightPos.xy) < distance(p1, lightPos.xy)
|
||||
|| distance(p1,lightPos.xy)>rad
|
||||
? p1 : xo);
|
||||
vec2 yoo = (distance(yo, lightPos.xy) < distance(p2, lightPos.xy)
|
||||
|| distance(p2,lightPos.xy)>rad
|
||||
? p2 : yo);
|
||||
|
||||
vec2 mo = intersectLL(xoo,xt,yoo,yt);
|
||||
|
||||
vec2 closeshift = (rad * normalize(closepoint - lightPos.xy)) + lightPos.xy - closepoint;
|
||||
vec2 shifto = (rad * normalize(closepoint - lightPos.xy)) + closepoint;
|
||||
vec2 p1o = vec2( distance(p1,lightPos.xy) > rad ? p1 : shift(p1) );
|
||||
//vec2 p1o = xoo;
|
||||
vec2 p2o = vec2( distance(p2,lightPos.xy) > rad ? p2 : shift(p2) );
|
||||
//vec2 p2o = yoo;
|
||||
|
||||
gl_Position = theMat * vec4(p1o,-500,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p1,-500,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p1o,100,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p1,100,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(shifto,100,1); EmitVertex();
|
||||
//gl_Position = theMat * vec4(xt,100,1); EmitVertex();
|
||||
//gl_Position = theMat * vec4(mo,100,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p2,100,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p2o,100,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p2,-500,1); EmitVertex();
|
||||
gl_Position = theMat * vec4(p2o,-500,1); EmitVertex();
|
||||
EndPrimitive();
|
||||
// be carefull with the winding...
|
||||
|
||||
EndPrimitive();
|
||||
} else {
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
#version 450 core
|
||||
struct PosTex { vec4 pospos; vec4 texang; };
|
||||
layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ;
|
||||
layout (std140, binding = 1) uniform TheLight { vec4 lightPos; vec4 colrad; };
|
||||
layout (std430, binding = 2) readonly buffer Pos { PosTex data[]; };
|
||||
layout(location=0) uniform vec3 lightPos;
|
||||
layout(location=1) uniform float rad;
|
||||
float rad = colrad.w;
|
||||
int indices[18] =
|
||||
{5,1,7 // 6----7
|
||||
,7,1,3 // /| /|
|
||||
,7,3,6 // 2-+--3 |
|
||||
,6,3,2 // | 4 | 5
|
||||
,6,2,4 // 0 1
|
||||
,4,2,0
|
||||
{5,7,1 // 6----7
|
||||
,7,3,1 // /| /|
|
||||
,7,6,3 // 2-+--3 |
|
||||
,6,2,3 // | 4 | 5
|
||||
,6,4,2 // 0 1
|
||||
,4,0,2
|
||||
};
|
||||
vec2 shift(vec2 p) {
|
||||
return vec2(lightPos.xy + (rad * normalize(p - lightPos.xy)));
|
||||
|
||||
@@ -42,6 +42,7 @@ data RenderData = RenderData
|
||||
, _fboLighting :: (FBO, TO)
|
||||
, _rboBaseBloom :: GLuint -- RenderbufferObject id
|
||||
, _matUBO :: GLuint -- BufferObject id
|
||||
, _lightUBO :: GLuint -- BufferObject id
|
||||
-- , _winSSBO :: GLuint
|
||||
-- , _wallSSBO :: GLuint
|
||||
-- , _shapeSSBO :: GLuint
|
||||
|
||||
@@ -40,6 +40,10 @@ preloadRender = do
|
||||
glNamedBufferStorage theUBO 64 nullPtr GL_DYNAMIC_STORAGE_BIT
|
||||
glBindBufferBase GL_UNIFORM_BUFFER 0 theUBO
|
||||
|
||||
lightubo <- mglCreate glCreateBuffers
|
||||
glNamedBufferStorage lightubo 32 nullPtr GL_DYNAMIC_STORAGE_BIT
|
||||
glBindBufferBase GL_UNIFORM_BUFFER 1 lightubo
|
||||
|
||||
winssbo <- mglCreate glCreateBuffers
|
||||
let winssbosize = sizeOf (0 :: Float) * 8 * 1024
|
||||
glNamedBufferStorage winssbo (fromIntegral winssbosize) nullPtr GL_DYNAMIC_STORAGE_BIT
|
||||
@@ -222,6 +226,7 @@ preloadRender = do
|
||||
, _fboPos = fboPosName
|
||||
, _rboBaseBloom = rboBaseBloomName
|
||||
, _matUBO = theUBO
|
||||
, _lightUBO = lightubo
|
||||
, _vboShapes = shVBO
|
||||
, _floorVBO = floorvbo
|
||||
, _floorShader = floorshader
|
||||
|
||||
+8
-32
@@ -158,7 +158,9 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
|
||||
-- 2. calculate lighting based on each fragment's position and normal
|
||||
-- TODO stencil out square around light!
|
||||
-- glEnable GL_SCISSOR_TEST
|
||||
glDisable GL_CULL_FACE
|
||||
flip VFSM.mapM_ (VFSM.fromList lightPoints) $ \(V3 x y z, rad, V3 r g b) -> do
|
||||
withArray [x,y,z,1,r,g,b,rad] $ glNamedBufferSubData (pdata ^. lightUBO) 0 32
|
||||
-- note that the stencil shadows rely on the depth buffer
|
||||
-- glScissor 0 0 200 200
|
||||
glDepthFunc GL_LESS
|
||||
@@ -172,51 +174,25 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
|
||||
glDisable GL_CULL_FACE
|
||||
-- the first bit has been used to stencil out "ceilings" under which we never draw
|
||||
glStencilFunc GL_NOTEQUAL 128 255
|
||||
glBindVertexArray $ pdata ^. dummyVAO . vaoName
|
||||
--draw wall shadows
|
||||
glUseProgram shadwall
|
||||
glUniform3f 0 x y z
|
||||
glUniform1f 1 rad
|
||||
--glBindVertexArray $ lwallShad ^. shaderVAO . vaoName -- Just (_vao $ _shadVAO lwallShad)
|
||||
glBindVertexArray $ pdata ^. dummyVAO . vaoName -- Just (_vao $ _shadVAO lwallShad)
|
||||
glDrawArrays GL_TRIANGLES 0 (nWalls * 18)
|
||||
case shadrendertype of
|
||||
GeoObjShads -> do
|
||||
--draw silhouette shadows
|
||||
glEnable GL_DEPTH_CLAMP
|
||||
glUseProgram (_shaderUINT llinesShad)
|
||||
glUniform3f 0 x y z
|
||||
glUniform1f 1 rad
|
||||
--glBindVertexArray (_vaoName $ _shaderVAO llinesShad)
|
||||
glBindVertexArray (pdata ^. dummyVAO . vaoName)
|
||||
glDrawArrays
|
||||
GL_TRIANGLES
|
||||
0
|
||||
((fromIntegral nSils * 6) `div` 4)
|
||||
--glDrawElements
|
||||
-- (_unPrimitiveMode $ _shaderPrimitive llinesShad)
|
||||
-- (fromIntegral nSils)
|
||||
-- GL_UNSIGNED_INT
|
||||
-- nullPtr
|
||||
glDrawArrays GL_TRIANGLES 0 ((fromIntegral nSils * 6) `div` 4)
|
||||
--draw caps on the near plane as required
|
||||
glEnable GL_CULL_FACE
|
||||
glCullFace GL_FRONT
|
||||
glCullFace GL_BACK
|
||||
glUseProgram (_shaderUINT lcapShad)
|
||||
glUniform3f 0 x y z
|
||||
glUniform4f 1 r g b rad
|
||||
--glBindVertexArray $ lcapShad ^. shaderVAO . vaoName --Just (_vao $ _shadVAO lcapShad)
|
||||
glBindVertexArray $ pdata ^. dummyVAO . vaoName
|
||||
glFrontFace(GL_CW)
|
||||
glDrawArrays
|
||||
GL_TRIANGLES
|
||||
0
|
||||
--3
|
||||
(fromIntegral nCaps)
|
||||
glFrontFace(GL_CCW)
|
||||
--glDrawElements
|
||||
-- (_unPrimitiveMode $ _shaderPrimitive lcapShad)
|
||||
-- (fromIntegral nCaps)
|
||||
-- GL_UNSIGNED_SHORT
|
||||
-- nullPtr
|
||||
-- glFrontFace(GL_CW)
|
||||
glDrawArrays GL_TRIANGLES 0 (fromIntegral nCaps)
|
||||
-- glFrontFace(GL_CCW)
|
||||
glDisable GL_DEPTH_CLAMP
|
||||
_ -> return ()
|
||||
--draw lightmap itself
|
||||
|
||||
@@ -92,7 +92,6 @@ BLINKERUNSAFE src/Dodge/Data/Item/Combine.hs 178;" C
|
||||
BLOWTORCH src/Dodge/Data/Item/Combine.hs 165;" C
|
||||
BLUE src/Color/Data.hs 14;" C
|
||||
BLUNDERBUSS src/Dodge/Data/Item/Combine.hs 148;" C
|
||||
BOType src/Shader/Data.hs 86;" t
|
||||
BQuad src/Geometry/Bezier.hs 9;" t
|
||||
BRAINHAT src/Dodge/Data/Item/Combine.hs 125;" C
|
||||
BULLETBELTBRACER src/Dodge/Data/Item/Combine.hs 133;" C
|
||||
@@ -435,7 +434,7 @@ FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 50;" C
|
||||
Flee src/Dodge/Data/ActionPlan.hs 143;" C
|
||||
Flesh src/Dodge/Data/Material.hs 17;" C
|
||||
FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 14;" C
|
||||
FloatBO src/Shader/Data.hs 88;" t
|
||||
FloatBO src/Shader/Data.hs 86;" t
|
||||
FloatConst src/Dodge/Data/FloatFunction.hs 15;" C
|
||||
FloatDistLinearNearFar src/Dodge/Data/FloatFunction.hs 13;" C
|
||||
FloatFOV src/Dodge/Data/FloatFunction.hs 11;" C
|
||||
@@ -989,7 +988,7 @@ PosInf src/Dodge/Data/CardinalPoint.hs 44;" C
|
||||
PosRooms src/Dodge/Tree/Shift.hs 28;" t
|
||||
Posture src/Dodge/Data/Creature/Stance.hs 33;" t
|
||||
PreloadData src/Data/Preload.hs 10;" t
|
||||
PrimitiveMode src/Shader/Data.hs 110;" t
|
||||
PrimitiveMode src/Shader/Data.hs 108;" t
|
||||
PrintMaterial src/Dodge/Data/AmmoType.hs 12;" C
|
||||
Prison src/Dodge/Data/Scenario.hs 65;" C
|
||||
Projectile src/Dodge/Data/Projectile.hs 15;" t
|
||||
@@ -1117,7 +1116,7 @@ SPEEDLEGS src/Dodge/Data/Item/Combine.hs 129;" C
|
||||
SPRING src/Dodge/Data/Item/Combine.hs 53;" C
|
||||
SPic src/ShapePicture/Data.hs 7;" t
|
||||
SQUARE src/Dodge/Data/GenParams.hs 18;" C
|
||||
SSBO src/Shader/Data.hs 99;" t
|
||||
SSBO src/Shader/Data.hs 97;" t
|
||||
SString src/ShortShow.hs 16;" C
|
||||
ST src/Dodge/Data/MetaTree.hs 20;" C
|
||||
STEELDRUM src/Dodge/Data/Item/Combine.hs 58;" C
|
||||
@@ -1151,7 +1150,7 @@ SetLSCol src/Dodge/Data/WorldEffect.hs 24;" C
|
||||
SetTrigger src/Dodge/Data/WorldEffect.hs 22;" C
|
||||
ShadNum src/Picture/Data.hs 33;" t
|
||||
Shader src/Shader/Data.hs 51;" t
|
||||
ShaderTexture src/Shader/Data.hs 105;" t
|
||||
ShaderTexture src/Shader/Data.hs 103;" t
|
||||
ShadowFidelity src/Shape/Data.hs 19;" t
|
||||
ShadowRendering src/Dodge/Data/Config.hs 103;" t
|
||||
Shape src/Shape/Data.hs 48;" t
|
||||
@@ -1349,7 +1348,7 @@ TwoHandUnder src/Dodge/Data/AimStance.hs 11;" C
|
||||
Typical src/Shape/Data.hs 31;" C
|
||||
UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 97;" C
|
||||
UNIGATE src/Dodge/Data/Item/Combine.hs 30;" C
|
||||
UintBO src/Shader/Data.hs 94;" t
|
||||
UintBO src/Shader/Data.hs 92;" t
|
||||
UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 16;" C
|
||||
UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 15;" C
|
||||
UnderGround src/Dodge/Data/Scenario.hs 78;" C
|
||||
@@ -1459,7 +1458,6 @@ WeaponScopeSF src/Dodge/Data/ComposedItem.hs 19;" C
|
||||
WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 20;" C
|
||||
West src/Dodge/Data/CardinalPoint.hs 10;" C
|
||||
West8 src/Dodge/Data/CardinalPoint.hs 34;" C
|
||||
WindowPoss src/Shader/Data.hs 86;" C
|
||||
WlID src/Dodge/Data/CrWlID.hs 10;" C
|
||||
Wood src/Dodge/Data/Material.hs 11;" C
|
||||
World src/Dodge/Data/World.hs 34;" t
|
||||
@@ -1538,9 +1536,6 @@ _bmPoints src/Dodge/Data/Beam.hs 22;" f
|
||||
_bmPos src/Dodge/Data/Beam.hs 18;" f
|
||||
_bmRange src/Dodge/Data/Beam.hs 24;" f
|
||||
_bmType src/Dodge/Data/Beam.hs 27;" f
|
||||
_boName src/Shader/Data.hs 89;" f
|
||||
_boPtr src/Shader/Data.hs 90;" f
|
||||
_boType src/Shader/Data.hs 91;" f
|
||||
_boffEff src/Dodge/Data/Button.hs 21;" f
|
||||
_bonEff src/Dodge/Data/Button.hs 20;" f
|
||||
_bounceTolerance src/Dodge/Data/Projectile.hs 46;" f
|
||||
@@ -1593,8 +1588,8 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f
|
||||
_ceSideEffect src/Dodge/Data/Universe.hs 66;" f
|
||||
_ceString src/Dodge/Data/Universe.hs 67;" f
|
||||
_ceilingStencilShader src/Data/Preload/Render.hs 18;" f
|
||||
_chasmShader src/Data/Preload/Render.hs 53;" f
|
||||
_chasmVBO src/Data/Preload/Render.hs 52;" f
|
||||
_chasmShader src/Data/Preload/Render.hs 54;" f
|
||||
_chasmVBO src/Data/Preload/Render.hs 53;" 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
|
||||
@@ -1623,8 +1618,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 57;" f
|
||||
_cloudVBO src/Data/Preload/Render.hs 56;" f
|
||||
_cloudShader src/Data/Preload/Render.hs 58;" f
|
||||
_cloudVBO src/Data/Preload/Render.hs 57;" f
|
||||
_clouds src/Dodge/Data/LWorld.hs 96;" f
|
||||
_colorBlurShader src/Data/Preload/Render.hs 26;" f
|
||||
_coolEnd src/Dodge/Data/TriggerType.hs 17;" f
|
||||
@@ -1754,7 +1749,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 60;" f
|
||||
_dummyVAO src/Data/Preload/Render.hs 61;" 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
|
||||
@@ -1783,9 +1778,12 @@ _flames src/Dodge/Data/LWorld.hs 105;" f
|
||||
_flankTarget src/Dodge/Data/ActionPlan.hs 129;" f
|
||||
_flares src/Dodge/Data/LWorld.hs 108;" f
|
||||
_flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f
|
||||
_flboName src/Shader/Data.hs 87;" f
|
||||
_flboPtr src/Shader/Data.hs 88;" f
|
||||
_flboStride src/Shader/Data.hs 89;" f
|
||||
_floorItems src/Dodge/Data/LWorld.hs 127;" f
|
||||
_floorShader src/Data/Preload/Render.hs 51;" f
|
||||
_floorVBO src/Data/Preload/Render.hs 50;" f
|
||||
_floorShader src/Data/Preload/Render.hs 52;" f
|
||||
_floorVBO src/Data/Preload/Render.hs 51;" 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
|
||||
@@ -1907,10 +1905,10 @@ _ldtRight src/Dodge/Data/DoubleTree.hs 35;" f
|
||||
_ldtValue src/Dodge/Data/DoubleTree.hs 33;" f
|
||||
_leadTargetBy src/Dodge/Data/ActionPlan.hs 115;" f
|
||||
_lightSources src/Dodge/Data/LWorld.hs 133;" f
|
||||
_lightUBO src/Data/Preload/Render.hs 45;" f
|
||||
_lightingCapShader src/Data/Preload/Render.hs 16;" f
|
||||
_lightingLineShadowShader src/Data/Preload/Render.hs 15;" f
|
||||
_lightingTextureShader src/Data/Preload/Render.hs 17;" f
|
||||
_lightingWallShadShader src/Data/Preload/Render.hs 14;" f
|
||||
_lights src/Dodge/Data/LWorld.hs 134;" f
|
||||
_linearShockwaves src/Dodge/Data/LWorld.hs 116;" f
|
||||
_linkGapEW src/Dodge/Data/Room.hs 36;" f
|
||||
@@ -2191,7 +2189,7 @@ _scOptions src/Dodge/Data/Universe.hs 84;" f
|
||||
_scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f
|
||||
_scSelectionList src/Dodge/Data/Universe.hs 88;" f
|
||||
_scTitle src/Dodge/Data/Universe.hs 83;" f
|
||||
_screenTextureVAO src/Data/Preload/Render.hs 59;" f
|
||||
_screenTextureVAO src/Data/Preload/Render.hs 60;" f
|
||||
_scrollAmount src/Dodge/Data/Input.hs 40;" f
|
||||
_scrollItemID src/Dodge/Data/World.hs 68;" f
|
||||
_scrollItemID src/Dodge/Data/World.hs 77;" f
|
||||
@@ -2218,6 +2216,7 @@ _sfShadowImportance src/Shape/Data.hs 40;" f
|
||||
_sfSize src/Shape/Data.hs 41;" f
|
||||
_sfType src/Shape/Data.hs 37;" f
|
||||
_sfVs src/Shape/Data.hs 38;" f
|
||||
_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
|
||||
@@ -2267,8 +2266,8 @@ _ssItems src/Dodge/Data/SelectionList.hs 30;" f
|
||||
_ssOffset src/Dodge/Data/SelectionList.hs 31;" f
|
||||
_ssShownItems src/Dodge/Data/SelectionList.hs 32;" f
|
||||
_ssShownLength src/Dodge/Data/SelectionList.hs 33;" f
|
||||
_ssboName src/Shader/Data.hs 100;" f
|
||||
_ssboPtr src/Shader/Data.hs 101;" f
|
||||
_ssboName src/Shader/Data.hs 98;" f
|
||||
_ssboPtr src/Shader/Data.hs 99;" f
|
||||
_strideAmount src/Dodge/Data/Creature/Stance.hs 23;" f
|
||||
_strideLength src/Dodge/Data/Creature/Stance.hs 18;" f
|
||||
_stuckCrID src/Dodge/Data/Projectile.hs 48;" f
|
||||
@@ -2302,7 +2301,7 @@ _terminals src/Dodge/Data/LWorld.hs 122;" f
|
||||
_teslaArcs src/Dodge/Data/LWorld.hs 110;" f
|
||||
_testFloat src/Dodge/Data/World.hs 42;" f
|
||||
_textInput src/Dodge/Data/Input.hs 46;" f
|
||||
_textureObject src/Shader/Data.hs 106;" f
|
||||
_textureObject src/Shader/Data.hs 104;" f
|
||||
_tiText src/Dodge/Data/Terminal/Status.hs 14;" f
|
||||
_tileArrayZ src/Data/Tile.hs 24;" f
|
||||
_tilePoly src/Data/Tile.hs 17;" f
|
||||
@@ -2352,15 +2351,15 @@ _uScope src/Dodge/Data/Item/Use.hs 34;" f
|
||||
_uValue src/Dodge/Data/Item/Use.hs 33;" f
|
||||
_uaParams src/Dodge/Data/Item/Use.hs 30;" f
|
||||
_ubMod src/Dodge/Data/Item/Use.hs 35;" f
|
||||
_uiboName src/Shader/Data.hs 95;" f
|
||||
_uiboPtr src/Shader/Data.hs 96;" f
|
||||
_uiboName src/Shader/Data.hs 93;" f
|
||||
_uiboPtr src/Shader/Data.hs 94;" f
|
||||
_unCombEdge src/Dodge/Combine/Graph.hs 30;" f
|
||||
_unCombNode src/Dodge/Combine/Graph.hs 23;" f
|
||||
_unFBO src/Shader/Data.hs 57;" f
|
||||
_unNInt src/NewInt.hs 16;" f
|
||||
_unNIntMap src/NewInt.hs 22;" f
|
||||
_unNIntSet src/NewInt.hs 19;" f
|
||||
_unPrimitiveMode src/Shader/Data.hs 110;" f
|
||||
_unPrimitiveMode src/Shader/Data.hs 108;" f
|
||||
_unPutCrit src/Dodge/Data/GenWorld.hs 32;" f
|
||||
_unST src/Dodge/Data/MetaTree.hs 20;" f
|
||||
_unTO src/Shader/Data.hs 59;" f
|
||||
@@ -2400,7 +2399,7 @@ _vaType src/Shader/Data.hs 68;" f
|
||||
_vaoName src/Shader/Data.hs 64;" f
|
||||
_vboName src/Shader/Data.hs 80;" f
|
||||
_vboPtr src/Shader/Data.hs 81;" f
|
||||
_vboShapes src/Data/Preload/Render.hs 49;" f
|
||||
_vboShapes src/Data/Preload/Render.hs 50;" 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
|
||||
@@ -2423,13 +2422,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 55;" f
|
||||
_wallVBO src/Data/Preload/Render.hs 56;" 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 54;" f
|
||||
_winVBO src/Data/Preload/Render.hs 55;" f
|
||||
_windowPosX src/Dodge/Data/Config.hs 53;" f
|
||||
_windowPosY src/Dodge/Data/Config.hs 54;" f
|
||||
_windowPullShader src/Data/Preload/Render.hs 21;" f
|
||||
@@ -2588,7 +2587,7 @@ attachOnward src/Dodge/Tree/Compose.hs 95;" f
|
||||
attachOnward' src/Dodge/Tree/Compose.hs 98;" f
|
||||
attachTree src/Dodge/Tree/Compose.hs 38;" f
|
||||
attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 75;" f
|
||||
attribSize src/Shader/Compile.hs 310;" f
|
||||
attribSize src/Shader/Compile.hs 320;" f
|
||||
autoAmr src/Dodge/Item/Held/Rod.hs 39;" f
|
||||
autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 488;" f
|
||||
autoCrit src/Dodge/Creature/AutoCrit.hs 10;" f
|
||||
@@ -2642,7 +2641,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f
|
||||
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f
|
||||
bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f
|
||||
bgunSound src/Dodge/HeldUse.hs 514;" f
|
||||
bindFBO src/Render.hs 270;" f
|
||||
bindFBO src/Render.hs 248;" f
|
||||
bingate src/Dodge/Item/Scope.hs 109;" f
|
||||
black src/Color.hs 27;" f
|
||||
blank src/Picture/Base.hs 59;" f
|
||||
@@ -2698,7 +2697,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 499;" f
|
||||
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 454;" f
|
||||
bufferPokedVBO src/Shader/Bind.hs 19;" f
|
||||
bufferShaderLayers src/Shader/Bind.hs 32;" f
|
||||
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
|
||||
@@ -2754,7 +2753,7 @@ checkConnection src/Dodge/Inventory/Swap.hs 66;" f
|
||||
checkDeath src/Dodge/Creature/Update.hs 70;" f
|
||||
checkDeath' src/Dodge/Creature/Update.hs 73;" f
|
||||
checkEndGame src/Dodge/Update.hs 766;" f
|
||||
checkErrorGL src/Shader/Compile.hs 259;" f
|
||||
checkErrorGL src/Shader/Compile.hs 267;" f
|
||||
checkFBO src/Framebuffer/Check.hs 6;" f
|
||||
checkGLError src/GLHelp.hs 14;" f
|
||||
checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f
|
||||
@@ -2855,7 +2854,7 @@ compP2A src/Dodge/ShiftPoint.hs 11;" f
|
||||
compactDraw src/Dodge/LevelGen.hs 94;" f
|
||||
compactDraw' src/Dodge/LevelGen.hs 105;" f
|
||||
compactDrawTree src/Dodge/LevelGen.hs 88;" f
|
||||
compileAndCheckShader src/Shader/Compile.hs 281;" f
|
||||
compileAndCheckShader src/Shader/Compile.hs 289;" f
|
||||
composeNode src/Dodge/Tree/Compose.hs 76;" f
|
||||
composeTree src/Dodge/Tree/Compose.hs 47;" f
|
||||
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f
|
||||
@@ -2876,7 +2875,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 249;" f
|
||||
cornerList src/Preload/Render.hs 244;" f
|
||||
corpseOrGib src/Dodge/Creature/Update.hs 111;" f
|
||||
corridor src/Dodge/Room/Corridor.hs 17;" f
|
||||
corridorBoss src/Dodge/LockAndKey.hs 133;" f
|
||||
@@ -3169,8 +3168,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 35;" f
|
||||
doDrawing' src/Dodge/Render.hs 46;" f
|
||||
doDrawing src/Dodge/Render.hs 34;" f
|
||||
doDrawing' src/Dodge/Render.hs 45;" f
|
||||
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
|
||||
doGenFloat src/Dodge/HeldUse.hs 1158;" f
|
||||
doGravityPU src/Dodge/Projectile/Update.hs 35;" f
|
||||
@@ -3193,7 +3192,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 42;" f
|
||||
doTestDrawing src/Dodge/Render.hs 41;" 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
|
||||
@@ -3503,7 +3502,7 @@ forceSpine src/StrictHelp.hs 4;" f
|
||||
fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f
|
||||
fpsText src/Dodge/Render/Picture.hs 59;" f
|
||||
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 145;" f
|
||||
frag src/Shader/Data.hs 113;" f
|
||||
frag src/Shader/Data.hs 111;" f
|
||||
freeShaderPointers' src/Shader.hs 37;" f
|
||||
fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
|
||||
fromJust' src/MaybeHelp.hs 22;" f
|
||||
@@ -3533,7 +3532,7 @@ generateGraphs src/Dodge/Menu.hs 149;" f
|
||||
generateLayout src/Dodge/Layout/Generate.hs 10;" f
|
||||
generateLevelFromRoomList src/Dodge/Layout.hs 35;" f
|
||||
generateWorldFromSeed src/Dodge/LevelGen.hs 17;" f
|
||||
geom src/Shader/Data.hs 113;" f
|
||||
geom src/Shader/Data.hs 111;" f
|
||||
geometryQuickCheckTests test/Spec.hs 55;" f
|
||||
geometryTests test/Spec.hs 17;" f
|
||||
geometryUnitTests test/Spec.hs 22;" f
|
||||
@@ -3552,7 +3551,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 505;" f
|
||||
getDistortions src/Dodge/Render.hs 466;" f
|
||||
getEdgesCrossing src/Dodge/Path.hs 37;" f
|
||||
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
|
||||
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
|
||||
@@ -3703,7 +3702,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 267;" f
|
||||
initializeGLState src/Preload/Render.hs 262;" f
|
||||
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
|
||||
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
|
||||
initializeTexture2D src/Framebuffer/Update.hs 205;" f
|
||||
@@ -4021,7 +4020,7 @@ makeBlockDebris src/Dodge/Block/Debris.hs 36;" f
|
||||
makeBoolOption src/Dodge/Menu/OptionType.hs 8;" f
|
||||
makeBullet src/Dodge/HeldUse.hs 979;" f
|
||||
makeButton src/Dodge/LevelGen/Switch.hs 16;" f
|
||||
makeByteStringShaderUsingVAO src/Shader/Compile.hs 132;" f
|
||||
makeByteStringShaderUsingVAO src/Shader/Compile.hs 134;" f
|
||||
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
|
||||
makeColorTermLine src/Dodge/Terminal.hs 111;" f
|
||||
makeColorTermPara src/Dodge/Terminal.hs 108;" f
|
||||
@@ -4047,14 +4046,14 @@ makePathBetweenPs src/Dodge/Path.hs 87;" f
|
||||
makePathUsing src/Dodge/Path.hs 51;" f
|
||||
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 24;" f
|
||||
makeSelectionListPictures src/Dodge/Render/List.hs 66;" f
|
||||
makeShaderEBO src/Shader/Compile.hs 53;" f
|
||||
makeShaderProgram src/Shader/Compile.hs 245;" f
|
||||
makeShaderUsingVAO src/Shader/Compile.hs 150;" f
|
||||
makeShaderUsingVBO src/Shader/Compile.hs 69;" f
|
||||
makeShaderVBO src/Shader/Compile.hs 32;" f
|
||||
makeShaderEBO src/Shader/Compile.hs 54;" f
|
||||
makeShaderProgram src/Shader/Compile.hs 253;" f
|
||||
makeShaderUsingVAO src/Shader/Compile.hs 152;" f
|
||||
makeShaderUsingVBO src/Shader/Compile.hs 70;" f
|
||||
makeShaderVBO src/Shader/Compile.hs 33;" f
|
||||
makeShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 11;" f
|
||||
makeShrapnelAt src/Dodge/Payload.hs 24;" f
|
||||
makeSourcedShader src/Shader/Compile.hs 171;" f
|
||||
makeSourcedShader src/Shader/Compile.hs 173;" f
|
||||
makeSpark src/Dodge/Spark.hs 45;" f
|
||||
makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f
|
||||
makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f
|
||||
@@ -4329,7 +4328,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 246;" f
|
||||
pingPongBetween src/Render.hs 224;" 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
|
||||
@@ -4358,16 +4357,16 @@ playSoundAndUpdate src/Sound.hs 54;" f
|
||||
playSoundQueue src/Sound.hs 132;" f
|
||||
playSoundUnlessRewinding appDodge/Main.hs 118;" f
|
||||
plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f
|
||||
pmLineLoop src/Shader/Data.hs 118;" f
|
||||
pmLineStrip src/Shader/Data.hs 118;" f
|
||||
pmLines src/Shader/Data.hs 118;" f
|
||||
pmLinesAdjacency src/Shader/Data.hs 118;" f
|
||||
pmPatches src/Shader/Data.hs 118;" f
|
||||
pmPoints src/Shader/Data.hs 118;" f
|
||||
pmQuads src/Shader/Data.hs 118;" f
|
||||
pmTriangleFan src/Shader/Data.hs 118;" f
|
||||
pmTriangleStrip src/Shader/Data.hs 118;" f
|
||||
pmTriangles src/Shader/Data.hs 118;" f
|
||||
pmLineLoop src/Shader/Data.hs 116;" f
|
||||
pmLineStrip src/Shader/Data.hs 116;" f
|
||||
pmLines src/Shader/Data.hs 116;" f
|
||||
pmLinesAdjacency src/Shader/Data.hs 116;" f
|
||||
pmPatches src/Shader/Data.hs 116;" f
|
||||
pmPoints src/Shader/Data.hs 116;" f
|
||||
pmQuads src/Shader/Data.hs 116;" f
|
||||
pmTriangleFan src/Shader/Data.hs 116;" f
|
||||
pmTriangleStrip src/Shader/Data.hs 116;" f
|
||||
pmTriangles src/Shader/Data.hs 116;" f
|
||||
pnZoneSize src/Dodge/Zoning/Pathing.hs 26;" f
|
||||
pointIfNotClose src/Dodge/LevelGen/StaticWalls/Deprecated.hs 68;" f
|
||||
pointInCircle src/Geometry.hs 209;" f
|
||||
@@ -4449,7 +4448,7 @@ powlistUpToN' src/Multiset.hs 12;" f
|
||||
powlistUpToN'' src/Multiset.hs 31;" f
|
||||
preCritStart src/Dodge/Room/Start.hs 83;" f
|
||||
prePos src/Quaternion.hs 64;" f
|
||||
preloadRender src/Preload/Render.hs 31;" f
|
||||
preloadRender src/Preload/Render.hs 32;" f
|
||||
premapMaybe src/FoldlHelp.hs 26;" f
|
||||
prependTwo src/Geometry.hs 177;" f
|
||||
prettyDT src/Dodge/DoubleTree.hs 258;" f
|
||||
@@ -4604,7 +4603,7 @@ renderDataResizeUpdate src/Preload/Update.hs 26;" f
|
||||
renderFlatLighting src/Render.hs 107;" f
|
||||
renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
|
||||
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
|
||||
renderLayer src/Render.hs 259;" f
|
||||
renderLayer src/Render.hs 237;" f
|
||||
renderLightingNoShadows src/Render.hs 48;" f
|
||||
renderListAt src/Dodge/Render/List.hs 192;" f
|
||||
renderShadows src/Render.hs 122;" f
|
||||
@@ -4807,7 +4806,7 @@ setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f
|
||||
setRoomInt src/Dodge/Room/Tutorial.hs 91;" f
|
||||
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
|
||||
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
|
||||
setShaderSource src/Shader/Compile.hs 294;" f
|
||||
setShaderSource src/Shader/Compile.hs 302;" f
|
||||
setShadowLimits src/Dodge/Shadows.hs 11;" f
|
||||
setSoundVolume src/Sound.hs 157;" f
|
||||
setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f
|
||||
@@ -4816,29 +4815,29 @@ setTiles src/Dodge/Layout.hs 67;" f
|
||||
setTreeInts src/Dodge/Room/Tutorial.hs 98;" f
|
||||
setViewDistance src/Dodge/Update/Camera.hs 239;" f
|
||||
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
|
||||
setViewport src/Dodge/Render.hs 510;" f
|
||||
setViewport src/Dodge/Render.hs 471;" f
|
||||
setVol src/Dodge/Config.hs 47;" f
|
||||
setWristShieldPos src/Dodge/Equipment.hs 49;" f
|
||||
setWristShieldPos src/Dodge/Euse.hs 38;" f
|
||||
setupConLoop src/Loop.hs 103;" f
|
||||
setupConLoop' src/Loop.hs 193;" f
|
||||
setupEBO src/Shader/Compile.hs 192;" f
|
||||
setupEBO src/Shader/Compile.hs 197;" f
|
||||
setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" f
|
||||
setupFramebuffer3GivenStencil src/Framebuffer/Setup.hs 62;" f
|
||||
setupFramebufferGivenStencil src/Framebuffer/Setup.hs 31;" f
|
||||
setupLoop src/Loop.hs 30;" f
|
||||
setupShadowFramebuffer src/Framebuffer/Setup.hs 24;" f
|
||||
setupStaticVBOVAO src/Shader/Compile.hs 102;" f
|
||||
setupVAOUsingVBO src/Shader/Compile.hs 183;" f
|
||||
setupVBO src/Shader/Compile.hs 83;" f
|
||||
setupVBOStatic src/Shader/Compile.hs 118;" f
|
||||
setupVBOVAO src/Shader/Compile.hs 204;" f
|
||||
setupVertexAttribPointer src/Shader/Compile.hs 228;" f
|
||||
setupVertexAttribs src/Shader/Compile.hs 222;" f
|
||||
setupStaticVBOVAO src/Shader/Compile.hs 103;" f
|
||||
setupVAOUsingVBO src/Shader/Compile.hs 185;" f
|
||||
setupVBO src/Shader/Compile.hs 84;" f
|
||||
setupVBOStatic src/Shader/Compile.hs 120;" f
|
||||
setupVBOVAO src/Shader/Compile.hs 209;" f
|
||||
setupVertexAttribPointer src/Shader/Compile.hs 234;" f
|
||||
setupVertexAttribs src/Shader/Compile.hs 228;" f
|
||||
setupWorldBounds src/Dodge/Layout.hs 116;" f
|
||||
sfInvColor src/Dodge/Item/InventoryColor.hs 12;" f
|
||||
shadVBOptr src/Shader.hs 40;" f
|
||||
shaderTypeExt src/Shader/Compile.hs 176;" f
|
||||
shaderTypeExt src/Shader/Compile.hs 178;" f
|
||||
shapeBounds src/Dodge/Room/Foreground.hs 147;" f
|
||||
shapePoints src/Dodge/Room/Foreground.hs 144;" f
|
||||
shapeVerxSize src/Shape/Parameters.hs 5;" f
|
||||
@@ -5149,7 +5148,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 141;" f
|
||||
toBothLnk src/Dodge/RoomLink.hs 136;" f
|
||||
toClosestMultiple src/HelpNum.hs 3;" f
|
||||
toColor8 src/Color.hs 148;" f
|
||||
toFloatVAs src/Shader/Compile.hs 215;" f
|
||||
toFloatVAs src/Shader/Compile.hs 220;" f
|
||||
toLabel src/Dodge/Cleat.hs 16;" f
|
||||
toMultiset src/Multiset.hs 64;" f
|
||||
toOnward src/Dodge/Tree/Compose.hs 101;" f
|
||||
@@ -5447,10 +5446,10 @@ vShape src/Dodge/Placement/Instance/LightSource.hs 93;" f
|
||||
vToL src/MatrixHelper.hs 56;" f
|
||||
vToQuat src/Quaternion.hs 42;" f
|
||||
validTerminalCommands src/Dodge/Debug/Terminal.hs 137;" f
|
||||
vasTightStride src/Shader/Compile.hs 301;" f
|
||||
vasTightStride src/Shader/Compile.hs 309;" f
|
||||
vecBetweenSpeed src/Dodge/Base.hs 146;" f
|
||||
vecTurnTo src/Dodge/Movement/Turn.hs 19;" f
|
||||
vert src/Shader/Data.hs 113;" f
|
||||
vert src/Shader/Data.hs 111;" f
|
||||
vertScale src/MatrixHelper.hs 95;" f
|
||||
vertTrans src/MatrixHelper.hs 103;" f
|
||||
verticalPipe src/Dodge/Picture.hs 19;" f
|
||||
@@ -5515,7 +5514,7 @@ windowLine src/Dodge/Placement/Instance/Wall.hs 59;" f
|
||||
windowXFloat src/Dodge/Data/Config.hs 61;" f
|
||||
windowYFloat src/Dodge/Data/Config.hs 63;" f
|
||||
withAlpha src/Color.hs 10;" f
|
||||
withByteString src/Shader/Compile.hs 328;" f
|
||||
withByteString src/Shader/Compile.hs 338;" f
|
||||
wlIXsNearCirc src/Dodge/Zoning/Wall.hs 32;" f
|
||||
wlIXsNearPoint src/Dodge/Zoning/Wall.hs 22;" f
|
||||
wlIXsNearRect src/Dodge/Zoning/Wall.hs 29;" f
|
||||
|
||||
Reference in New Issue
Block a user