- fix softpoly mirrors
This commit is contained in:
parent
ee9fa7c33e
commit
6e77cb4906
7 changed files with 37 additions and 25 deletions
|
|
@ -150,7 +150,7 @@ void PolyDrawLinePortal::Render(int portalDepth)
|
|||
Segments.clear();
|
||||
Segments.push_back({ angle1, angle2 });*/
|
||||
|
||||
PortalViewpoint = PolyRenderer::Instance()->SetupPerspectiveMatrix();
|
||||
PortalViewpoint = PolyRenderer::Instance()->SetupPerspectiveMatrix(Mirror);
|
||||
PortalViewpoint.StencilValue = StencilValue;
|
||||
PortalViewpoint.PortalPlane = portalPlane;
|
||||
PortalViewpoint.PortalDepth = portalDepth;
|
||||
|
|
@ -248,9 +248,6 @@ void PolyDrawLinePortal::SaveGlobals()
|
|||
viewpoint.sector = R_PointInSubsector(viewpoint.Pos)->sector;
|
||||
|
||||
R_SetViewAngle(viewpoint, viewwindow);
|
||||
|
||||
if (Mirror)
|
||||
PolyTriangleDrawer::ToggleMirror(PolyRenderer::Instance()->Threads.MainThread()->DrawQueue);
|
||||
}
|
||||
|
||||
void PolyDrawLinePortal::RestoreGlobals()
|
||||
|
|
@ -269,7 +266,4 @@ void PolyDrawLinePortal::RestoreGlobals()
|
|||
}
|
||||
|
||||
R_SetViewAngle(viewpoint, viewwindow);
|
||||
|
||||
if (Mirror)
|
||||
PolyTriangleDrawer::ToggleMirror(PolyRenderer::Instance()->Threads.MainThread()->DrawQueue);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@ void RenderPolyScene::RenderSectors()
|
|||
|
||||
PolyRenderer::Instance()->Threads.RenderThreadSlices(totalcount, [&](PolyRenderThread *thread)
|
||||
{
|
||||
PolyTriangleDrawer::SetCullCCW(thread->DrawQueue, !CurrentViewpoint->Mirror);
|
||||
PolyTriangleDrawer::SetTransform(thread->DrawQueue, thread->FrameMemory->NewObject<Mat4f>(CurrentViewpoint->WorldToClip));
|
||||
|
||||
if (thread != mainthread)
|
||||
|
|
@ -334,6 +335,7 @@ void RenderPolyScene::RenderPortals()
|
|||
}
|
||||
|
||||
Mat4f *transform = thread->FrameMemory->NewObject<Mat4f>(CurrentViewpoint->WorldToClip);
|
||||
PolyTriangleDrawer::SetCullCCW(thread->DrawQueue, !CurrentViewpoint->Mirror);
|
||||
PolyTriangleDrawer::SetTransform(thread->DrawQueue, transform);
|
||||
|
||||
PolyDrawArgs args;
|
||||
|
|
@ -377,6 +379,7 @@ void RenderPolyScene::RenderTranslucent()
|
|||
PolyRenderThread *thread = PolyRenderer::Instance()->Threads.MainThread();
|
||||
|
||||
Mat4f *transform = thread->FrameMemory->NewObject<Mat4f>(CurrentViewpoint->WorldToClip);
|
||||
PolyTriangleDrawer::SetCullCCW(thread->DrawQueue, !CurrentViewpoint->Mirror);
|
||||
PolyTriangleDrawer::SetTransform(thread->DrawQueue, transform);
|
||||
|
||||
PolyMaskedCycles.Clock();
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ public:
|
|||
PolyClipPlane PortalPlane;
|
||||
uint32_t StencilValue = 0;
|
||||
int PortalDepth = 0;
|
||||
bool Mirror = false;
|
||||
|
||||
line_t *PortalEnterLine = nullptr;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue