From 61635772fe27e12c0353dc6962bb1a84a0bdcab7 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Sat, 30 Sep 2023 22:56:10 +0200 Subject: [PATCH] Remove XFloorToSurface and XFloorToSurfaceSides as they aren't needed --- src/rendering/hwrenderer/doom_levelmesh.cpp | 16 ----------- src/rendering/hwrenderer/doom_levelmesh.h | 4 --- src/rendering/hwrenderer/scene/hw_flats.cpp | 32 +++------------------ src/rendering/hwrenderer/scene/hw_walls.cpp | 5 ++++ 4 files changed, 9 insertions(+), 48 deletions(-) diff --git a/src/rendering/hwrenderer/doom_levelmesh.cpp b/src/rendering/hwrenderer/doom_levelmesh.cpp index d11a52e6d..93ec63a83 100644 --- a/src/rendering/hwrenderer/doom_levelmesh.cpp +++ b/src/rendering/hwrenderer/doom_levelmesh.cpp @@ -170,22 +170,6 @@ void DoomLevelMesh::PackLightmapAtlas() void DoomLevelMesh::BindLightmapSurfacesToGeometry(FLevelLocals& doomMap) { static_cast(StaticMesh.get())->BindLightmapSurfacesToGeometry(doomMap); - - // Runtime helper - for (auto& surface : static_cast(StaticMesh.get())->Surfaces) - { - if (surface.ControlSector) - { - if (surface.Type == ST_FLOOR || surface.Type == ST_CEILING) - { - XFloorToSurface[surface.Subsector->sector].Push(&surface); - } - else if (surface.Type == ST_MIDDLESIDE) - { - XFloorToSurfaceSides[surface.ControlSector].Push(&surface); - } - } - } } void DoomLevelMesh::DisableLightmaps() diff --git a/src/rendering/hwrenderer/doom_levelmesh.h b/src/rendering/hwrenderer/doom_levelmesh.h index 1a04af9cd..a2ac7297a 100644 --- a/src/rendering/hwrenderer/doom_levelmesh.h +++ b/src/rendering/hwrenderer/doom_levelmesh.h @@ -140,8 +140,4 @@ public: void BindLightmapSurfacesToGeometry(FLevelLocals& doomMap); void DisableLightmaps(); void DumpMesh(const FString& objFilename, const FString& mtlFilename) const; - - // To do: remove these. Use ffloors on flats and sides to find the 3d surfaces as that is both faster and culls better - TMap> XFloorToSurface; - TMap> XFloorToSurfaceSides; }; diff --git a/src/rendering/hwrenderer/scene/hw_flats.cpp b/src/rendering/hwrenderer/scene/hw_flats.cpp index d11bbe886..571597505 100644 --- a/src/rendering/hwrenderer/scene/hw_flats.cpp +++ b/src/rendering/hwrenderer/scene/hw_flats.cpp @@ -525,36 +525,12 @@ void HWFlat::ProcessSector(HWDrawInfo *di, FRenderState& state, sector_t * front { for (int plane = 0; plane < 2; ++plane) { - if (auto lightmap = sector->subsectors[i]->lightmap[plane][0]) + unsigned int count = sector->e->XFloor.ffloors.Size() + 1; + for (unsigned int j = 0; j < count; j++) { - di->PushVisibleSurface(lightmap); - } - } - } - - if (auto subsectors = sector->Level->levelMesh->XFloorToSurface.CheckKey(sector)) - { - for (auto* surface : *subsectors) - { - if (surface) - { - di->PushVisibleSurface(surface); - } - } - } - - if (sector->e->XFloor.ffloors.Size()) - { - for (auto* floor : sector->e->XFloor.ffloors) - { - if (auto sides = sector->Level->levelMesh->XFloorToSurfaceSides.CheckKey(floor->model)) - { - for (auto* surface : *sides) + if (auto lightmap = sector->subsectors[i]->lightmap[plane][j]) { - if (surface) - { - di->PushVisibleSurface(surface); - } + di->PushVisibleSurface(lightmap); } } } diff --git a/src/rendering/hwrenderer/scene/hw_walls.cpp b/src/rendering/hwrenderer/scene/hw_walls.cpp index 72356819b..a0c82a328 100644 --- a/src/rendering/hwrenderer/scene/hw_walls.cpp +++ b/src/rendering/hwrenderer/scene/hw_walls.cpp @@ -1671,6 +1671,11 @@ void HWWall::BuildFFBlock(HWDrawInfo *di, FRenderState& state, seg_t * seg, F3DF else lightmap = seg->linedef->sidedef[0]->lightmap ? seg->linedef->sidedef[0]->lightmap[4 + roverIndex] : nullptr; + if (lightmap) + { + di->PushVisibleSurface(lightmap); + } + if (rover->flags&FF_FOG) { if (!di->isFullbrightScene())