- removed level references in the software renderers.
This commit is contained in:
parent
4f540c1703
commit
8c542e9be8
31 changed files with 99 additions and 77 deletions
|
|
@ -70,6 +70,7 @@ namespace swrenderer
|
|||
RenderSkyPlane::RenderSkyPlane(RenderThread *thread)
|
||||
{
|
||||
Thread = thread;
|
||||
auto Level = Thread->Viewport->Level();
|
||||
|
||||
auto skytex1 = TexMan.GetPalettedTexture(sky1texture, true);
|
||||
auto skytex2 = TexMan.GetPalettedTexture(sky2texture, true);
|
||||
|
|
@ -87,7 +88,7 @@ namespace swrenderer
|
|||
}
|
||||
else if (skyheight > 200)
|
||||
{
|
||||
skytexturemid = (200 - skyheight) * sskytex1->GetScale().Y + ((r_skymode == 2 && !(level.flags & LEVEL_FORCETILEDSKY)) ? skytex1->GetSkyOffset() : 0);
|
||||
skytexturemid = (200 - skyheight) * sskytex1->GetScale().Y + ((r_skymode == 2 && !(Level->flags & LEVEL_FORCETILEDSKY)) ? skytex1->GetSkyOffset() : 0);
|
||||
}
|
||||
|
||||
if (viewwidth != 0 && viewheight != 0)
|
||||
|
|
@ -118,8 +119,9 @@ namespace swrenderer
|
|||
{
|
||||
FTextureID sky1tex, sky2tex;
|
||||
double frontdpos = 0, backdpos = 0;
|
||||
auto Level = Thread->Viewport->Level();
|
||||
|
||||
if ((level.flags & LEVEL_SWAPSKIES) && !(level.flags & LEVEL_DOUBLESKY))
|
||||
if ((Level->flags & LEVEL_SWAPSKIES) && !(Level->flags & LEVEL_DOUBLESKY))
|
||||
{
|
||||
sky1tex = sky2texture;
|
||||
}
|
||||
|
|
@ -137,7 +139,7 @@ namespace swrenderer
|
|||
{ // use sky1
|
||||
sky1:
|
||||
frontskytex = GetSWTex(sky1tex);
|
||||
if (level.flags & LEVEL_DOUBLESKY)
|
||||
if (Level->flags & LEVEL_DOUBLESKY)
|
||||
backskytex = GetSWTex(sky2tex);
|
||||
else
|
||||
backskytex = NULL;
|
||||
|
|
@ -158,7 +160,7 @@ namespace swrenderer
|
|||
else
|
||||
{ // MBF's linedef-controlled skies
|
||||
// Sky Linedef
|
||||
const line_t *l = &level.lines[(pl->sky & ~PL_SKYFLAT) - 1];
|
||||
const line_t *l = &Level->lines[(pl->sky & ~PL_SKYFLAT) - 1];
|
||||
|
||||
// Sky transferred from first sidedef
|
||||
const side_t *s = l->sidedef[0];
|
||||
|
|
@ -166,7 +168,7 @@ namespace swrenderer
|
|||
|
||||
// Texture comes from upper texture of reference sidedef
|
||||
// [RH] If swapping skies, then use the lower sidedef
|
||||
if (level.flags & LEVEL_SWAPSKIES && s->GetTexture(side_t::bottom).isValid())
|
||||
if (Level->flags & LEVEL_SWAPSKIES && s->GetTexture(side_t::bottom).isValid())
|
||||
{
|
||||
pos = side_t::bottom;
|
||||
}
|
||||
|
|
@ -224,6 +226,7 @@ namespace swrenderer
|
|||
{
|
||||
RenderPortal *renderportal = Thread->Portal.get();
|
||||
auto viewport = Thread->Viewport.get();
|
||||
auto Level = viewport->Level();
|
||||
|
||||
double uv_stepd = skyiscale * yrepeat;
|
||||
double v = (texturemid + uv_stepd * (y1 - viewport->CenterY + 0.5)) / frontskytex->GetHeight();
|
||||
|
|
@ -256,7 +259,7 @@ namespace swrenderer
|
|||
drawerargs.SetTextureVPos(uv_pos);
|
||||
drawerargs.SetDest(viewport, start_x, y1);
|
||||
drawerargs.SetCount(y2 - y1);
|
||||
drawerargs.SetFadeSky(r_skymode == 2 && !(level.flags & LEVEL_FORCETILEDSKY));
|
||||
drawerargs.SetFadeSky(r_skymode == 2 && !(Level->flags & LEVEL_FORCETILEDSKY));
|
||||
drawerargs.SetSolidTop(frontskytex->GetSkyCapColor(false));
|
||||
drawerargs.SetSolidBottom(frontskytex->GetSkyCapColor(true));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue