From 60567f207c46e51b60efc47d19730e6aa5c6c1b1 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 23 Apr 2018 22:10:11 +0200 Subject: [PATCH] - made CheckViewArea a global function. This can be put into the common hwrenderer folder but for that it shouldn't be part of the scene drawer. --- src/gl/renderer/gl_renderer.h | 1 + src/gl/scene/gl_bsp.cpp | 2 +- src/gl/scene/gl_fakeflat.cpp | 6 +++--- src/gl/scene/gl_scenedrawer.h | 2 -- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gl/renderer/gl_renderer.h b/src/gl/renderer/gl_renderer.h index fa87ada0a..0fb7f0bdc 100644 --- a/src/gl/renderer/gl_renderer.h +++ b/src/gl/renderer/gl_renderer.h @@ -246,6 +246,7 @@ enum area_t // Global functions. Make them members of GLRenderer later? bool gl_CheckClip(side_t * sidedef, sector_t * frontsector, sector_t * backsector); sector_t * gl_FakeFlat(sector_t * sec, sector_t * dest, area_t in_area, bool back); +area_t gl_CheckViewArea(area_t in_area, vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector); struct TexFilter_s { diff --git a/src/gl/scene/gl_bsp.cpp b/src/gl/scene/gl_bsp.cpp index f77cfbf08..44326d398 100644 --- a/src/gl/scene/gl_bsp.cpp +++ b/src/gl/scene/gl_bsp.cpp @@ -146,7 +146,7 @@ void GLSceneDrawer::AddLine (seg_t *seg, bool portalclip) else { // clipping checks are only needed when the backsector is not the same as the front sector - CheckViewArea(seg->v1, seg->v2, seg->frontsector, seg->backsector); + in_area = gl_CheckViewArea(in_area, seg->v1, seg->v2, seg->frontsector, seg->backsector); backsector = gl_FakeFlat(seg->backsector, &bs, in_area, true); diff --git a/src/gl/scene/gl_fakeflat.cpp b/src/gl/scene/gl_fakeflat.cpp index 14a723d58..67ba1cfef 100644 --- a/src/gl/scene/gl_fakeflat.cpp +++ b/src/gl/scene/gl_fakeflat.cpp @@ -159,7 +159,7 @@ bool gl_CheckClip(side_t * sidedef, sector_t * frontsector, sector_t * backsecto // //========================================================================== -void GLSceneDrawer::CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector) +area_t gl_CheckViewArea(area_t in_area, vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector) { if (in_area == area_default && (backsector->heightsec && !(backsector->heightsec->MoreFlags & SECF_IGNOREHEIGHTSEC)) && @@ -174,9 +174,9 @@ void GLSceneDrawer::CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsec // allow some tolerance in case slopes are involved if (cz1 <= fz1 + 1. / 100 && cz2 <= fz2 + 1. / 100) - in_area = area_below; + return area_below; else - in_area = area_normal; + return area_normal; } } diff --git a/src/gl/scene/gl_scenedrawer.h b/src/gl/scene/gl_scenedrawer.h index 4f59120ac..ec3b86d8e 100644 --- a/src/gl/scene/gl_scenedrawer.h +++ b/src/gl/scene/gl_scenedrawer.h @@ -73,8 +73,6 @@ public: void DrawEndScene2D(sector_t * viewsector); void RenderActorsInPortal(FLinePortalSpan *glport); - void CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector); - sector_t *RenderViewpoint(AActor * camera, GL_IRECT * bounds, float fov, float ratio, float fovratio, bool mainview, bool toscreen); void RenderView(player_t *player); void WriteSavePic(player_t *player, FileWriter *file, int width, int height);