Skip to content

Commit

Permalink
Added cvar "rend-dev-fakeradio-update" for debugging purposes
Browse files Browse the repository at this point in the history
Disabling this cvar will pause updating of the fakeradio shadow edge
data. Shadows will still be drawn but using old values.
  • Loading branch information
danij-deng committed Feb 14, 2012
1 parent 2e3bf25 commit 2467ba3
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
3 changes: 3 additions & 0 deletions doomsday/engine/data/cphelp.txt
Expand Up @@ -624,6 +624,9 @@ desc = Display brightness: -1=dark, 0=normal, 1=light.
[rend-dev-wireframe]
desc = 1=Render player view in wireframe mode.

[rend-dev-fakeradio-update]
desc = 1=Enable updating of the shadow edges used with simulated radiosity.

[rend-dev-framecount]
desc = Frame counter.

Expand Down
18 changes: 14 additions & 4 deletions doomsday/engine/portable/src/rend_fakeradio.c
Expand Up @@ -54,13 +54,17 @@ typedef struct edge_s {
static void scanEdges(shadowcorner_t topCorners[2], shadowcorner_t bottomCorners[2],
shadowcorner_t sideCorners[2], edgespan_t spans[2], const linedef_t* line, boolean backSide);

int rendFakeRadio = true; // cvar
float rendFakeRadioDarkness = 1.2f; // cvar
int rendFakeRadio = true; ///< cvar
float rendFakeRadioDarkness = 1.2f; ///< cvar

static byte devFakeRadioUpdate = true; ///< cvar

void Rend_RadioRegister(void)
{
C_VAR_INT("rend-fakeradio", &rendFakeRadio, 0, 0, 2);
C_VAR_FLOAT("rend-fakeradio-darkness", &rendFakeRadioDarkness, 0, 0, 2);

C_VAR_BYTE("rend-dev-fakeradio-update", &devFakeRadioUpdate, CVF_NO_ARCHIVE, 0, 1);
}

float Rend_RadioCalcShadowDarkness(float lightLevel)
Expand All @@ -74,6 +78,9 @@ void Rend_RadioUpdateLinedef(linedef_t* line, boolean backSide)

if(!rendFakeRadio || levelFullBright || !line) return;

// Update disabled?
if(!devFakeRadioUpdate) return;

// Have we yet determined the shadow properties to be used with segs
// on this sidedef?
s = line->sideDefs[backSide? BACK : FRONT];
Expand Down Expand Up @@ -1430,7 +1437,7 @@ static void drawLinkedEdgeShadows(const subsector_t* ssec, shadowlink_t* link,
uint pln;
assert(ssec && link && doPlanes);

if(!(shadowDark > .0001)) return;
if(!(shadowDark > .0001f)) return;

if(doPlanes[PLN_FLOOR])
processEdgeShadow(ssec, link->lineDef, link->side, PLN_FLOOR, shadowDark);
Expand Down Expand Up @@ -1469,10 +1476,13 @@ static void radioSubsectorEdges(const subsector_t* subsector)
return; // No point drawing shadows in a PITCH black sector.

// Determine the shadow properties.
// \fixme Make cvars out of constants.
/// @fixme Make cvars out of constants.
shadowWallSize = 2 * (8 + 16 - sectorlight * 16);
shadowDark = Rend_RadioCalcShadowDarkness(sectorlight);

// Any need to continue?
if(!(shadowDark > .0001f)) return;

vec[VX] = vx - subsector->midPoint.pos[VX];
vec[VY] = vz - subsector->midPoint.pos[VY];
vec[VZ] = 0;
Expand Down

0 comments on commit 2467ba3

Please sign in to comment.