mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-11 15:22:15 +00:00
- moved side_t::GetLightLevel out of software rendering code.
SVN r3252 (trunk)
This commit is contained in:
parent
5bf6398d85
commit
0d43ecdd9d
2 changed files with 68 additions and 56 deletions
|
@ -899,3 +899,71 @@ void subsector_t::BuildPolyBSP()
|
||||||
BSP->Subsectors[i].sector = sector;
|
BSP->Subsectors[i].sector = sector;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
CUSTOM_CVAR(Int, r_fakecontrast, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||||
|
{
|
||||||
|
if (self < 0) self = 1;
|
||||||
|
else if (self > 2) self = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
//==========================================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//==========================================================================
|
||||||
|
|
||||||
|
int side_t::GetLightLevel (bool foggy, int baselight, int *pfakecontrast) const
|
||||||
|
{
|
||||||
|
if (Flags & WALLF_ABSLIGHTING)
|
||||||
|
{
|
||||||
|
baselight = Light;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pfakecontrast != NULL)
|
||||||
|
{
|
||||||
|
*pfakecontrast = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!foggy) // Don't do relative lighting in foggy sectors
|
||||||
|
{
|
||||||
|
if (!(Flags & WALLF_NOFAKECONTRAST) && r_fakecontrast != 0)
|
||||||
|
{
|
||||||
|
int rel;
|
||||||
|
if (((level.flags2 & LEVEL2_SMOOTHLIGHTING) || (Flags & WALLF_SMOOTHLIGHTING) || r_fakecontrast == 2) &&
|
||||||
|
linedef->dx != 0)
|
||||||
|
{
|
||||||
|
rel = xs_RoundToInt // OMG LEE KILLOUGH LIVES! :/
|
||||||
|
(
|
||||||
|
level.WallHorizLight
|
||||||
|
+ fabs(atan(double(linedef->dy) / linedef->dx) / 1.57079)
|
||||||
|
* (level.WallVertLight - level.WallHorizLight)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rel = linedef->dx == 0 ? level.WallVertLight :
|
||||||
|
linedef->dy == 0 ? level.WallHorizLight : 0;
|
||||||
|
}
|
||||||
|
if (pfakecontrast != NULL)
|
||||||
|
{
|
||||||
|
*pfakecontrast = rel;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
baselight += rel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!(Flags & WALLF_ABSLIGHTING))
|
||||||
|
{
|
||||||
|
baselight += this->Light;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return baselight;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -2047,62 +2047,6 @@ void R_NewWall (bool needlights)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CUSTOM_CVAR(Int, r_fakecontrast, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
|
||||||
{
|
|
||||||
if (self < 0) self = 1;
|
|
||||||
else if (self > 2) self = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
int side_t::GetLightLevel (bool foggy, int baselight, int *pfakecontrast) const
|
|
||||||
{
|
|
||||||
if (Flags & WALLF_ABSLIGHTING)
|
|
||||||
{
|
|
||||||
baselight = Light;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pfakecontrast != NULL)
|
|
||||||
{
|
|
||||||
*pfakecontrast = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!foggy) // Don't do relative lighting in foggy sectors
|
|
||||||
{
|
|
||||||
if (!(Flags & WALLF_NOFAKECONTRAST) && r_fakecontrast != 0)
|
|
||||||
{
|
|
||||||
int rel;
|
|
||||||
if (((level.flags2 & LEVEL2_SMOOTHLIGHTING) || (Flags & WALLF_SMOOTHLIGHTING) || r_fakecontrast == 2) &&
|
|
||||||
linedef->dx != 0)
|
|
||||||
{
|
|
||||||
rel = xs_RoundToInt // OMG LEE KILLOUGH LIVES! :/
|
|
||||||
(
|
|
||||||
level.WallHorizLight
|
|
||||||
+ fabs(atan(double(linedef->dy) / linedef->dx) / 1.57079)
|
|
||||||
* (level.WallVertLight - level.WallHorizLight)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rel = linedef->dx == 0 ? level.WallVertLight :
|
|
||||||
linedef->dy == 0 ? level.WallHorizLight : 0;
|
|
||||||
}
|
|
||||||
if (pfakecontrast != NULL)
|
|
||||||
{
|
|
||||||
*pfakecontrast = rel;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
baselight += rel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!(Flags & WALLF_ABSLIGHTING))
|
|
||||||
{
|
|
||||||
baselight += this->Light;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return baselight;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// R_CheckDrawSegs
|
// R_CheckDrawSegs
|
||||||
|
|
Loading…
Reference in a new issue