From 753cd0aeded2412a39ace246fd4504cd28be1661 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 19 Jun 2018 17:44:11 +0200 Subject: [PATCH] - made R_SetViewAngle a member of r_viewpoint --- src/gl/scene/gl_scene.cpp | 5 +++-- src/polyrenderer/scene/poly_portal.cpp | 8 ++++---- src/r_utility.cpp | 12 ++++++------ src/r_utility.h | 5 +++++ src/swrenderer/scene/r_portal.cpp | 4 ++-- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/gl/scene/gl_scene.cpp b/src/gl/scene/gl_scene.cpp index 95f915b1eb..5afd63bad3 100644 --- a/src/gl/scene/gl_scene.cpp +++ b/src/gl/scene/gl_scene.cpp @@ -148,12 +148,13 @@ void GLSceneDrawer::Set3DViewport(bool mainview) void GLSceneDrawer::SetViewAngle(DAngle viewangle) { + FRenderViewpoint &vp = r_viewpoint; GLRenderer->mAngles.Yaw = float(270.0-viewangle.Degrees); - DVector2 v = r_viewpoint.Angles.Yaw.ToVector(); + DVector2 v = vp.Angles.Yaw.ToVector(); GLRenderer->mViewVector.X = v.X; GLRenderer->mViewVector.Y = v.Y; - R_SetViewAngle(r_viewpoint, r_viewwindow); + vp.SetViewAngle(r_viewwindow); } diff --git a/src/polyrenderer/scene/poly_portal.cpp b/src/polyrenderer/scene/poly_portal.cpp index f85314564b..a4a7ec467a 100644 --- a/src/polyrenderer/scene/poly_portal.cpp +++ b/src/polyrenderer/scene/poly_portal.cpp @@ -88,7 +88,7 @@ void PolyDrawSectorPortal::SaveGlobals() viewpoint.camera = nullptr; viewpoint.sector = Portal->mDestination; - R_SetViewAngle(viewpoint, viewwindow); + viewpoint.SetViewAngle(viewwindow); Portal->mFlags |= PORTSF_INSKYBOX; if (Portal->mPartner > 0) level.sectorPortals[Portal->mPartner].mFlags |= PORTSF_INSKYBOX; @@ -114,7 +114,7 @@ void PolyDrawSectorPortal::RestoreGlobals() //PolyRenderer::Instance()->Light.SetVisibility(savedvisibility); - R_SetViewAngle(viewpoint, viewwindow); + viewpoint.SetViewAngle(viewwindow); } ///////////////////////////////////////////////////////////////////////////// @@ -236,7 +236,7 @@ void PolyDrawLinePortal::SaveGlobals() viewpoint.camera = nullptr; viewpoint.sector = R_PointInSubsector(viewpoint.Pos)->sector; - R_SetViewAngle(viewpoint, viewwindow); + viewpoint.SetViewAngle(viewwindow); } void PolyDrawLinePortal::RestoreGlobals() @@ -254,5 +254,5 @@ void PolyDrawLinePortal::RestoreGlobals() viewpoint.camera->renderflags &= ~RF_INVISIBLE; } - R_SetViewAngle(viewpoint, viewwindow); + viewpoint.SetViewAngle(viewwindow); } diff --git a/src/r_utility.cpp b/src/r_utility.cpp index 127ac45979..82ab62f2bf 100644 --- a/src/r_utility.cpp +++ b/src/r_utility.cpp @@ -602,13 +602,13 @@ void R_ResetViewInterpolation () // //========================================================================== -void R_SetViewAngle (FRenderViewpoint &viewpoint, const FViewWindow &viewwindow) +void FRenderViewpoint::SetViewAngle (const FViewWindow &viewwindow) { - viewpoint.Sin = viewpoint.Angles.Yaw.Sin(); - viewpoint.Cos = viewpoint.Angles.Yaw.Cos(); + Sin = Angles.Yaw.Sin(); + Cos = Angles.Yaw.Cos(); - viewpoint.TanSin = viewwindow.FocalTangent * viewpoint.Sin; - viewpoint.TanCos = viewwindow.FocalTangent * viewpoint.Cos; + TanSin = viewwindow.FocalTangent * Sin; + TanCos = viewwindow.FocalTangent * Cos; } //========================================================================== @@ -844,7 +844,7 @@ void R_SetupFrame (FRenderViewpoint &viewpoint, FViewWindow &viewwindow, AActor } R_InterpolateView (viewpoint, player, viewpoint.TicFrac, iview); - R_SetViewAngle (viewpoint, viewwindow); + viewpoint.SetViewAngle (viewwindow); interpolator.DoInterpolations (viewpoint.TicFrac); diff --git a/src/r_utility.h b/src/r_utility.h index 3874614264..122e6f0797 100644 --- a/src/r_utility.h +++ b/src/r_utility.h @@ -5,6 +5,7 @@ #include "vectors.h" class FSerializer; +struct FViewWindow; // // Stuff from r_main.h that's needed outside the rendering code. @@ -36,6 +37,10 @@ struct FRenderViewpoint int extralight; // extralight to be added to this viewpoint bool showviewer; // show the camera actor? + + + void SetViewAngle(const FViewWindow &viewwindow); + }; extern FRenderViewpoint r_viewpoint; diff --git a/src/swrenderer/scene/r_portal.cpp b/src/swrenderer/scene/r_portal.cpp index 323480c328..b56ddc457d 100644 --- a/src/swrenderer/scene/r_portal.cpp +++ b/src/swrenderer/scene/r_portal.cpp @@ -172,7 +172,7 @@ namespace swrenderer Thread->Viewport->viewpoint.camera = nullptr; Thread->Viewport->viewpoint.sector = port->mDestination; assert(Thread->Viewport->viewpoint.sector != nullptr); - R_SetViewAngle(Thread->Viewport->viewpoint, Thread->Viewport->viewwindow); + Thread->Viewport->viewpoint.SetViewAngle(Thread->Viewport->viewwindow); Thread->Viewport->SetupPolyViewport(Thread); Thread->OpaquePass->ClearSeenSprites(); Thread->Clip3D->ClearFakeFloors(); @@ -260,7 +260,7 @@ namespace swrenderer Thread->Light->SetVisibility(Thread->Viewport.get(), savedvisibility); Thread->Viewport->viewpoint.extralight = savedextralight; Thread->Viewport->viewpoint.Angles = savedangles; - R_SetViewAngle(Thread->Viewport->viewpoint, Thread->Viewport->viewwindow); + Thread->Viewport->viewpoint.SetViewAngle(Thread->Viewport->viewwindow); Thread->Viewport->SetupPolyViewport(Thread); CurrentPortalInSkybox = false;