Split Clear into two functions

This commit is contained in:
Magnus Norddahl 2017-01-19 03:19:31 +01:00
parent e94cb3f114
commit 112085ebff
4 changed files with 23 additions and 25 deletions

View file

@ -64,10 +64,13 @@ namespace swrenderer
return newplane;
}
void VisiblePlaneList::Clear(bool fullclear)
void VisiblePlaneList::Clear()
{
// Don't clear fake planes if not doing a full clear.
if (!fullclear)
for (int i = 0; i <= MAXVISPLANES; i++)
visplanes[i] = nullptr;
}
void VisiblePlaneList::ClearKeepFakePlanes()
{
for (int i = 0; i <= MAXVISPLANES - 1; i++)
{
@ -86,12 +89,6 @@ namespace swrenderer
}
}
}
else
{
for (int i = 0; i <= MAXVISPLANES; i++)
visplanes[i] = nullptr;
}
}
VisiblePlane *VisiblePlaneList::FindPlane(const secplane_t &height, FTextureID picnum, int lightlevel, double Alpha, bool additive, const FTransform &xxform, int sky, FSectorPortal *portal, FDynamicColormap *basecolormap)
{

View file

@ -27,7 +27,8 @@ namespace swrenderer
public:
static VisiblePlaneList *Instance();
void Clear(bool fullclear);
void Clear();
void ClearKeepFakePlanes();
VisiblePlane *FindPlane(const secplane_t &height, FTextureID picnum, int lightlevel, double Alpha, bool additive, const FTransform &xxform, int sky, FSectorPortal *portal, FDynamicColormap *basecolormap);
VisiblePlane *GetRange(VisiblePlane *pl, int start, int stop);

View file

@ -165,7 +165,7 @@ namespace swrenderer
R_SetViewAngle();
validcount++; // Make sure we see all sprites
planes->Clear(false);
planes->ClearKeepFakePlanes();
RenderClipSegment::Instance()->Clear(pl->left, pl->right);
WindowLeft = pl->left;
WindowRight = pl->right;
@ -408,7 +408,7 @@ namespace swrenderer
PortalDrawseg* prevpds = CurrentPortal;
CurrentPortal = pds;
VisiblePlaneList::Instance()->Clear(false);
VisiblePlaneList::Instance()->ClearKeepFakePlanes();
RenderClipSegment::Instance()->Clear(pds->x1, pds->x2);
WindowLeft = pds->x1;

View file

@ -133,7 +133,7 @@ namespace swrenderer
// Clear buffers.
RenderClipSegment::Instance()->Clear(0, viewwidth);
R_ClearDrawSegs();
VisiblePlaneList::Instance()->Clear(true);
VisiblePlaneList::Instance()->Clear();
RenderTranslucentPass::Clear();
// opening / clipping determination