diff --git a/src/am_map.cpp b/src/am_map.cpp index 57b6dd2d77..fb89133a87 100644 --- a/src/am_map.cpp +++ b/src/am_map.cpp @@ -1883,6 +1883,124 @@ void AM_drawGrid (int color) } } +//========================================================================== +// +// This was previously using the variants from the renderers but with +// all globals being factored out this will become dangerouns and unpredictable +// as the original R_FakeFlat heavily depended on global variables from +// the last rendered scene. +// +//========================================================================== + +sector_t * AM_FakeFlat(AActor *viewer, sector_t * sec, sector_t * dest) +{ + if (sec->GetHeightSec() == nullptr) return sec; + + DVector3 pos = viewer->Pos(); + + if (viewer->player) + { + pos.Z = viewer->player->viewz; + } + else + { + pos.Z += viewer->GetCameraHeight(); + } + + int in_area; + if (viewer->Sector->GetHeightSec() == nullptr) + { + in_area = 0; + } + else + { + in_area = pos.Z <= viewer->Sector->heightsec->floorplane.ZatPoint(pos) ? -1 : + (pos.Z > viewer->Sector->heightsec->ceilingplane.ZatPoint(pos) && !(viewer->Sector->heightsec->MoreFlags&SECF_FAKEFLOORONLY)) ? 1 : 0; + } + + int diffTex = (sec->heightsec->MoreFlags & SECF_CLIPFAKEPLANES); + sector_t * s = sec->heightsec; + + memcpy(dest, sec, sizeof(sector_t)); + + // Replace floor height with control sector's heights. + // The automap is only interested in the floor so let's skip the ceiling. + if (diffTex) + { + if (s->floorplane.CopyPlaneIfValid(&dest->floorplane, &sec->ceilingplane)) + { + dest->SetTexture(sector_t::floor, s->GetTexture(sector_t::floor), false); + dest->SetPlaneTexZ(sector_t::floor, s->GetPlaneTexZ(sector_t::floor)); + } + else if (s->MoreFlags & SECF_FAKEFLOORONLY) + { + if (in_area == -1) + { + dest->ColorMap = s->ColorMap; + if (!(s->MoreFlags & SECF_NOFAKELIGHT)) + { + dest->lightlevel = s->lightlevel; + dest->SetPlaneLight(sector_t::floor, s->GetPlaneLight(sector_t::floor)); + dest->ChangeFlags(sector_t::floor, -1, s->GetFlags(sector_t::floor)); + } + return dest; + } + return sec; + } + } + else + { + dest->SetPlaneTexZ(sector_t::floor, s->GetPlaneTexZ(sector_t::floor)); + dest->floorplane = s->floorplane; + } + + if (in_area == -1) + { + dest->ColorMap = s->ColorMap; + dest->SetPlaneTexZ(sector_t::floor, sec->GetPlaneTexZ(sector_t::floor)); + dest->floorplane = sec->floorplane; + if (!(s->MoreFlags & SECF_NOFAKELIGHT)) + { + dest->lightlevel = s->lightlevel; + } + + dest->SetTexture(sector_t::floor, diffTex ? sec->GetTexture(sector_t::floor) : s->GetTexture(sector_t::floor), false); + dest->planes[sector_t::floor].xform = s->planes[sector_t::floor].xform; + + if (!(s->MoreFlags & SECF_NOFAKELIGHT)) + { + dest->SetPlaneLight(sector_t::floor, s->GetPlaneLight(sector_t::floor)); + dest->ChangeFlags(sector_t::floor, -1, s->GetFlags(sector_t::floor)); + } + } + else if (in_area == 1) + { + dest->ColorMap = s->ColorMap; + dest->SetPlaneTexZ(sector_t::floor, s->GetPlaneTexZ(sector_t::ceiling)); + dest->floorplane = s->ceilingplane; + if (!(s->MoreFlags & SECF_NOFAKELIGHT)) + { + dest->lightlevel = s->lightlevel; + } + + dest->SetTexture(sector_t::floor, s->GetTexture(sector_t::ceiling), false); + + if (s->GetTexture(sector_t::floor) != skyflatnum) + { + dest->SetTexture(sector_t::floor, s->GetTexture(sector_t::floor), false); + dest->planes[sector_t::floor].xform = s->planes[sector_t::floor].xform; + } + + if (!(s->MoreFlags & SECF_NOFAKELIGHT)) + { + dest->lightlevel = s->lightlevel; + dest->SetPlaneLight(sector_t::floor, s->GetPlaneLight(sector_t::floor)); + dest->ChangeFlags(sector_t::floor, -1, s->GetFlags(sector_t::floor)); + } + } + return dest; +} + //============================================================================= // // AM_drawSubsectors @@ -1895,7 +2013,7 @@ void AM_drawSubsectors() double scale = scale_mtof; DAngle rotation; sector_t tempsec; - int floorlight, ceilinglight; + int floorlight; double scalex, scaley; double originx, originy; FDynamicColormap *colormap; @@ -1933,7 +2051,8 @@ void AM_drawSubsectors() points[j].Y = float(f_y + (f_h - (pt.y - m_y) * scale)); } // For lighting and texture determination - sector_t *sec = Renderer->FakeFlat(subsectors[i].render_sector, &tempsec, &floorlight, &ceilinglight); + sector_t *sec = AM_FakeFlat(players[consoleplayer].camera, subsectors[i].render_sector, &tempsec); + floorlight = sec->GetFloorLight(); // Find texture origin. originpt.x = -sec->GetXOffset(sector_t::floor); originpt.y = sec->GetYOffset(sector_t::floor); diff --git a/src/gl/renderer/gl_renderer.h b/src/gl/renderer/gl_renderer.h index 9aa5aded6a..e3a2c0372f 100644 --- a/src/gl/renderer/gl_renderer.h +++ b/src/gl/renderer/gl_renderer.h @@ -196,27 +196,18 @@ public: static float GetZFar() { return 65536.f; } }; +enum area_t +{ + area_normal, + area_below, + area_above, + area_default +}; + + // Global functions. Make them members of GLRenderer later? -void gl_RenderBSPNode (void *node); bool gl_CheckClip(side_t * sidedef, sector_t * frontsector, sector_t * backsector); -void gl_CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector); - -typedef enum -{ - area_normal, - area_below, - area_above, - area_default -} area_t; - -extern area_t in_area; - - sector_t * gl_FakeFlat(sector_t * sec, sector_t * dest, area_t in_area, bool back); -inline sector_t * gl_FakeFlat(sector_t * sec, sector_t * dest, bool back) -{ - return gl_FakeFlat(sec, dest, in_area, back); -} struct TexFilter_s { diff --git a/src/gl/scene/gl_bsp.cpp b/src/gl/scene/gl_bsp.cpp index 774038621d..32d20bedb9 100644 --- a/src/gl/scene/gl_bsp.cpp +++ b/src/gl/scene/gl_bsp.cpp @@ -147,9 +147,9 @@ 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 - gl_CheckViewArea(seg->v1, seg->v2, seg->frontsector, seg->backsector); + CheckViewArea(seg->v1, seg->v2, seg->frontsector, seg->backsector); - backsector = gl_FakeFlat(seg->backsector, &bs, true); + backsector = gl_FakeFlat(seg->backsector, &bs, in_area, true); if (gl_CheckClip(seg->sidedef, currentsector, backsector)) { @@ -435,7 +435,7 @@ void GLSceneDrawer::DoSubsector(subsector_t * sub) } if (clipper.IsBlocked()) return; // if we are inside a stacked sector portal which hasn't unclipped anything yet. - fakesector=gl_FakeFlat(sector, &fake, false); + fakesector=gl_FakeFlat(sector, &fake, in_area, false); if (GLRenderer->mClipPortal) { @@ -502,7 +502,7 @@ void GLSceneDrawer::DoSubsector(subsector_t * sub) sector = sub->render_sector; // the planes of this subsector are faked to belong to another sector // This means we need the heightsec parts and light info of the render sector, not the actual one. - fakesector = gl_FakeFlat(sector, &fake, false); + fakesector = gl_FakeFlat(sector, &fake, in_area, false); } uint8_t &srf = gl_drawinfo->sectorrenderflags[sub->render_sector->sectornum]; diff --git a/src/gl/scene/gl_drawinfo.cpp b/src/gl/scene/gl_drawinfo.cpp index a903be03b6..88253c17cf 100644 --- a/src/gl/scene/gl_drawinfo.cpp +++ b/src/gl/scene/gl_drawinfo.cpp @@ -1230,8 +1230,8 @@ void FDrawInfo::FloodUpperGap(seg_t * seg) { wallseg ws; sector_t ffake, bfake; - sector_t * fakefsector = gl_FakeFlat(seg->frontsector, &ffake, true); - sector_t * fakebsector = gl_FakeFlat(seg->backsector, &bfake, false); + sector_t * fakefsector = gl_FakeFlat(seg->frontsector, &ffake, mDrawer->in_area, true); + sector_t * fakebsector = gl_FakeFlat(seg->backsector, &bfake, mDrawer->in_area, false); vertex_t * v1, * v2; @@ -1282,8 +1282,8 @@ void FDrawInfo::FloodLowerGap(seg_t * seg) { wallseg ws; sector_t ffake, bfake; - sector_t * fakefsector = gl_FakeFlat(seg->frontsector, &ffake, true); - sector_t * fakebsector = gl_FakeFlat(seg->backsector, &bfake, false); + sector_t * fakefsector = gl_FakeFlat(seg->frontsector, &ffake, mDrawer->in_area, true); + sector_t * fakebsector = gl_FakeFlat(seg->backsector, &bfake, mDrawer->in_area, false); vertex_t * v1, * v2; diff --git a/src/gl/scene/gl_fakeflat.cpp b/src/gl/scene/gl_fakeflat.cpp index 98a70a1a8e..304bbe4a8b 100644 --- a/src/gl/scene/gl_fakeflat.cpp +++ b/src/gl/scene/gl_fakeflat.cpp @@ -31,7 +31,7 @@ #include "a_sharedglobal.h" #include "r_sky.h" #include "gl/renderer/gl_renderer.h" -#include "gl/scene/gl_clipper.h" +#include "gl/scene/gl_scenedrawer.h" #include "gl/data/gl_data.h" @@ -160,7 +160,7 @@ bool gl_CheckClip(side_t * sidedef, sector_t * frontsector, sector_t * backsecto // //========================================================================== -void gl_CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector) +void GLSceneDrawer::CheckViewArea(vertex_t *v1, vertex_t *v2, sector_t *frontsector, sector_t *backsector) { if (in_area == area_default && (backsector->heightsec && !(backsector->heightsec->MoreFlags & SECF_IGNOREHEIGHTSEC)) && diff --git a/src/gl/scene/gl_portal.cpp b/src/gl/scene/gl_portal.cpp index 32f7b960e1..b6a71ffac9 100644 --- a/src/gl/scene/gl_portal.cpp +++ b/src/gl/scene/gl_portal.cpp @@ -287,7 +287,7 @@ bool GLPortal::Start(bool usestencil, bool doquery) savedshowviewer = r_viewpoint.showviewer; savedAngles = r_viewpoint.Angles; savedviewactor=GLRenderer->mViewActor; - savedviewarea=in_area; + savedviewarea=drawer->in_area; savedviewpath[0] = r_viewpoint.Path[0]; savedviewpath[1] = r_viewpoint.Path[1]; savedvisibility = r_viewpoint.camera ? r_viewpoint.camera->renderflags & RF_MAYBEINVISIBLE : ActorRenderFlags::FromInt(0); @@ -359,7 +359,7 @@ void GLPortal::End(bool usestencil) r_viewpoint.ActorPos = savedViewActorPos; r_viewpoint.Angles = savedAngles; GLRenderer->mViewActor=savedviewactor; - in_area=savedviewarea; + drawer->in_area=savedviewarea; if (r_viewpoint.camera != nullptr) r_viewpoint.camera->renderflags = (r_viewpoint.camera->renderflags & ~RF_MAYBEINVISIBLE) | savedvisibility; drawer->SetupView(r_viewpoint.Pos.X, r_viewpoint.Pos.Y, r_viewpoint.Pos.Z, r_viewpoint.Angles.Yaw, !!(MirrorFlag & 1), !!(PlaneMirrorFlag & 1)); @@ -418,7 +418,7 @@ void GLPortal::End(bool usestencil) r_viewpoint.Pos = savedViewPos; r_viewpoint.Angles = savedAngles; GLRenderer->mViewActor=savedviewactor; - in_area=savedviewarea; + drawer->in_area=savedviewarea; if (r_viewpoint.camera != nullptr) r_viewpoint.camera->renderflags |= savedvisibility; drawer->SetupView(r_viewpoint.Pos.X, r_viewpoint.Pos.Y, r_viewpoint.Pos.Z, r_viewpoint.Angles.Yaw, !!(MirrorFlag&1), !!(PlaneMirrorFlag&1)); diff --git a/src/gl/scene/gl_renderhacks.cpp b/src/gl/scene/gl_renderhacks.cpp index ff3c39f302..4d2ec2e481 100644 --- a/src/gl/scene/gl_renderhacks.cpp +++ b/src/gl/scene/gl_renderhacks.cpp @@ -37,6 +37,7 @@ #include "gl/dynlights/gl_glow.h" #include "gl/scene/gl_drawinfo.h" #include "gl/scene/gl_portal.h" +#include "gl/scene/gl_scenedrawer.h" #include "gl/utility/gl_clock.h" #include "gl/utility/gl_templates.h" @@ -280,7 +281,7 @@ bool FDrawInfo::DoOneSectorUpper(subsector_t * subsec, float Planez) // Note: if this is a real line between sectors // we can be sure that render_sector is the real sector! - sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, true); + sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, mDrawer->in_area, true); // Don't bother with slopes if (sec->ceilingplane.isSlope()) return false; @@ -338,7 +339,7 @@ bool FDrawInfo::DoOneSectorLower(subsector_t * subsec, float Planez) // Note: if this is a real line between sectors // we can be sure that render_sector is the real sector! - sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, true); + sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, mDrawer->in_area, true); // Don't bother with slopes if (sec->floorplane.isSlope()) return false; @@ -397,7 +398,7 @@ bool FDrawInfo::DoFakeBridge(subsector_t * subsec, float Planez) // Note: if this is a real line between sectors // we can be sure that render_sector is the real sector! - sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, true); + sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, mDrawer->in_area, true); // Don't bother with slopes if (sec->floorplane.isSlope()) return false; @@ -450,7 +451,7 @@ bool FDrawInfo::DoFakeCeilingBridge(subsector_t * subsec, float Planez) // Note: if this is a real line between sectors // we can be sure that render_sector is the real sector! - sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, true); + sector_t * sec = gl_FakeFlat(seg->backsector, &fakesec, mDrawer->in_area, true); // Don't bother with slopes if (sec->ceilingplane.isSlope()) return false; @@ -539,7 +540,7 @@ void FDrawInfo::HandleMissingTextures() { // It isn't a hole. Now check whether it might be a fake bridge - sector_t * fakesector = gl_FakeFlat(MissingUpperTextures[i].seg->frontsector, &fake, false); + sector_t * fakesector = gl_FakeFlat(MissingUpperTextures[i].seg->frontsector, &fake, mDrawer->in_area, false); float planez = (float)fakesector->GetPlaneTexZ(sector_t::ceiling); backsub->validcount = validcount; @@ -610,7 +611,7 @@ void FDrawInfo::HandleMissingTextures() { // It isn't a hole. Now check whether it might be a fake bridge - sector_t * fakesector = gl_FakeFlat(MissingLowerTextures[i].seg->frontsector, &fake, false); + sector_t * fakesector = gl_FakeFlat(MissingLowerTextures[i].seg->frontsector, &fake, mDrawer->in_area, false); float planez = (float)fakesector->GetPlaneTexZ(sector_t::floor); backsub->validcount = validcount; @@ -1042,7 +1043,7 @@ void FDrawInfo::CollectSectorStacksCeiling(subsector_t * sub, sector_t * anchor) if (sub->numlines>2 && !(ss_renderflags[uint32_t(sub-subsectors)]&SSRF_PROCESSED)) return; // Must be the exact same visplane - sector_t * me = gl_FakeFlat(sub->render_sector, &fakesec, false); + sector_t * me = gl_FakeFlat(sub->render_sector, &fakesec, mDrawer->in_area, false); if (me->GetTexture(sector_t::ceiling) != anchor->GetTexture(sector_t::ceiling) || me->ceilingplane != anchor->ceilingplane || me->GetCeilingLight() != anchor->GetCeilingLight() || @@ -1085,7 +1086,7 @@ void FDrawInfo::CollectSectorStacksFloor(subsector_t * sub, sector_t * anchor) if (sub->numlines>2 && !(ss_renderflags[uint32_t(sub-subsectors)]&SSRF_PROCESSED)) return; // Must be the exact same visplane - sector_t * me = gl_FakeFlat(sub->render_sector, &fakesec, false); + sector_t * me = gl_FakeFlat(sub->render_sector, &fakesec, mDrawer->in_area, false); if (me->GetTexture(sector_t::floor) != anchor->GetTexture(sector_t::floor) || me->floorplane != anchor->floorplane || me->GetFloorLight() != anchor->GetFloorLight() || @@ -1124,7 +1125,7 @@ void FDrawInfo::ProcessSectorStacks() validcount++; for (i=0;iin_area, false); FPortal *portal = sec->GetGLPortal(sector_t::ceiling); if (portal != NULL) for(int k=0;ksubsectorcount;k++) { @@ -1168,7 +1169,7 @@ void FDrawInfo::ProcessSectorStacks() validcount++; for (i=0;iin_area, false); FPortal *portal = sec->GetGLPortal(sector_t::floor); if (portal != NULL) for(int k=0;ksubsectorcount;k++) { diff --git a/src/gl/scene/gl_scene.cpp b/src/gl/scene/gl_scene.cpp index 93fd0876a0..8b37d7e69c 100644 --- a/src/gl/scene/gl_scene.cpp +++ b/src/gl/scene/gl_scene.cpp @@ -85,7 +85,6 @@ EXTERN_CVAR (Bool, r_deathcamera) EXTERN_CVAR (Float, underwater_fade_scalar) -extern int viewpitch; extern bool NoInterpolateView; area_t in_area; @@ -991,7 +990,6 @@ struct FGLInterface : public FRenderer void StartSerialize(FSerializer &arc) override; void EndSerialize(FSerializer &arc) override; void RenderTextureView (FCanvasTexture *self, AActor *viewpoint, int fov) override; - sector_t *FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel) override; void SetFogParams(int _fogdensity, PalEntry _outsidefogcolor, int _outsidefogdensity, int _skyfog) override; void PreprocessLevel() override; void CleanLevelData() override; @@ -1165,25 +1163,6 @@ void FGLInterface::RenderTextureView (FCanvasTexture *tex, AActor *Viewpoint, in camtexcount++; } -//========================================================================== -// -// -// -//========================================================================== - -sector_t *FGLInterface::FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel) -{ - if (floorlightlevel != NULL) - { - *floorlightlevel = sec->GetFloorLight (); - } - if (ceilinglightlevel != NULL) - { - *ceilinglightlevel = sec->GetCeilingLight (); - } - return gl_FakeFlat(sec, tempsec, false); -} - //=========================================================================== // // diff --git a/src/gl/scene/gl_scenedrawer.h b/src/gl/scene/gl_scenedrawer.h index 8f18a107e6..00426e36b4 100644 --- a/src/gl/scene/gl_scenedrawer.h +++ b/src/gl/scene/gl_scenedrawer.h @@ -5,6 +5,7 @@ #include "gl_clipper.h" #include "gl_portal.h" #include "gl/renderer/gl_lightdata.h" +#include "gl/renderer/gl_renderer.h" class GLSceneDrawer { @@ -39,6 +40,7 @@ public: Clipper clipper; int FixedColormap; + area_t in_area; angle_t FrustumAngle(); void SetViewMatrix(float vx, float vy, float vz, bool mirror, bool planemirror); @@ -55,6 +57,8 @@ public: void EndDrawScene(sector_t * viewsector); void RenderActorsInPortal(FGLLinePortal *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); diff --git a/src/gl/scene/gl_sprite.cpp b/src/gl/scene/gl_sprite.cpp index 0c0ddf3b8f..721ad4b6db 100644 --- a/src/gl/scene/gl_sprite.cpp +++ b/src/gl/scene/gl_sprite.cpp @@ -752,7 +752,7 @@ void GLSprite::Process(AActor* thing, sector_t * sector, int thruportal) if (sector->sectornum != thing->Sector->sectornum && !thruportal) { - rendersector = gl_FakeFlat(thing->Sector, &rs, false); + rendersector = gl_FakeFlat(thing->Sector, &rs, mDrawer->in_area, false); } else { @@ -927,7 +927,7 @@ void GLSprite::Process(AActor* thing, sector_t * sector, int thruportal) Colormap=rendersector->ColorMap; if (fullbright) { - if (rendersector == &level.sectors[rendersector->sectornum] || in_area != area_below) + if (rendersector == &level.sectors[rendersector->sectornum] || mDrawer->in_area != area_below) // under water areas keep their color for fullbright objects { // Only make the light white but keep everything else (fog, desaturation and Boom colormap.) @@ -1259,7 +1259,7 @@ void GLSceneDrawer::RenderActorsInPortal(FGLLinePortal *glport) th->Prev += newpos - savedpos; GLSprite spr(this); - spr.Process(th, gl_FakeFlat(th->Sector, &fakesector, false), 2); + spr.Process(th, gl_FakeFlat(th->Sector, &fakesector, in_area, false), 2); th->Angles.Yaw = savedangle; th->SetXYZ(savedpos); th->Prev -= newpos - savedpos; diff --git a/src/gl/scene/gl_weapon.cpp b/src/gl/scene/gl_weapon.cpp index ba54e5a01e..42f6e5a059 100644 --- a/src/gl/scene/gl_weapon.cpp +++ b/src/gl/scene/gl_weapon.cpp @@ -245,7 +245,7 @@ void GLSceneDrawer::DrawPlayerSprites(sector_t * viewsector, bool hudModelStep) } else { - fakesec = gl_FakeFlat(viewsector, &fs, false); + fakesec = gl_FakeFlat(viewsector, &fs, in_area, false); // calculate light level for weapon sprites lightlevel = gl_ClampLight(fakesec->lightlevel); diff --git a/src/r_renderer.h b/src/r_renderer.h index a5ecb12d8f..7ab8600d2b 100644 --- a/src/r_renderer.h +++ b/src/r_renderer.h @@ -53,7 +53,6 @@ struct FRenderer virtual void SetClearColor(int color) = 0; virtual void Init() = 0; virtual void RenderTextureView (FCanvasTexture *tex, AActor *viewpoint, int fov) = 0; - virtual sector_t *FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel) = 0; virtual void SetFogParams(int _fogdensity, PalEntry _outsidefogcolor, int _outsidefogdensity, int _skyfog) {} virtual void PreprocessLevel() {} virtual void CleanLevelData() {} diff --git a/src/swrenderer/r_swrenderer.cpp b/src/swrenderer/r_swrenderer.cpp index 001e6f360d..705353ebd3 100644 --- a/src/swrenderer/r_swrenderer.cpp +++ b/src/swrenderer/r_swrenderer.cpp @@ -353,11 +353,6 @@ void FSoftwareRenderer::RenderTextureView (FCanvasTexture *tex, AActor *viewpoin r_viewwindow = viewport->viewwindow; } -sector_t *FSoftwareRenderer::FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel) -{ - return mScene.MainThread()->OpaquePass->FakeFlat(sec, tempsec, floorlightlevel, ceilinglightlevel, nullptr, 0, 0, 0, 0); -} - void FSoftwareRenderer::PreprocessLevel() { gl_PreprocessLevel(); diff --git a/src/swrenderer/r_swrenderer.h b/src/swrenderer/r_swrenderer.h index d79d4806cf..640731ae3c 100644 --- a/src/swrenderer/r_swrenderer.h +++ b/src/swrenderer/r_swrenderer.h @@ -34,7 +34,6 @@ struct FSoftwareRenderer : public FRenderer void SetClearColor(int color) override; void Init() override; void RenderTextureView (FCanvasTexture *tex, AActor *viewpoint, int fov) override; - sector_t *FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel) override; void PreprocessLevel() override; void CleanLevelData() override;