- use the worker threads to clear the stencil buffer

This commit is contained in:
Magnus Norddahl 2018-06-10 12:42:19 +02:00
commit de67393b4e
7 changed files with 66 additions and 20 deletions

View file

@ -162,7 +162,14 @@ void PolyRenderer::RenderActorView(AActor *actor, bool dontmaplines)
r_modelscene = r_models && Models.Size() > 0;
ClearBuffers();
NextStencilValue = 0;
Threads.Clear();
Threads.MainThread()->SectorPortals.clear();
Threads.MainThread()->LinePortals.clear();
Threads.MainThread()->TranslucentObjects.clear();
PolyTriangleDrawer::ResizeBuffers(RenderTarget);
PolyTriangleDrawer::ClearStencil(Threads.MainThread()->DrawQueue, 0);
SetSceneViewport();
PolyPortalViewpoint mainViewpoint = SetupPerspectiveMatrix();
@ -184,16 +191,6 @@ void PolyRenderer::RenderRemainingPlayerSprites()
PlayerSprites.RenderRemainingSprites();
}
void PolyRenderer::ClearBuffers()
{
Threads.Clear();
PolyTriangleDrawer::ClearBuffers(RenderTarget);
NextStencilValue = 0;
Threads.MainThread()->SectorPortals.clear();
Threads.MainThread()->LinePortals.clear();
Threads.MainThread()->TranslucentObjects.clear();
}
void PolyRenderer::SetSceneViewport()
{
using namespace swrenderer;