diff --git a/src/am_map.cpp b/src/am_map.cpp index 3a4e0aaa14..7e346843b0 100644 --- a/src/am_map.cpp +++ b/src/am_map.cpp @@ -1897,6 +1897,7 @@ void AM_drawSubsectors() FDynamicColormap *colormap; mpoint_t originpt; + screen->StartSimplePolys(); for (int i = 0; i < numsubsectors; ++i) { if (subsectors[i].flags & SSECF_POLYORG) @@ -2049,6 +2050,7 @@ void AM_drawSubsectors() ); } } + screen->FinishSimplePolys(); } //============================================================================= diff --git a/src/v_draw.cpp b/src/v_draw.cpp index c7b62b0a66..89023d4bda 100644 --- a/src/v_draw.cpp +++ b/src/v_draw.cpp @@ -1244,6 +1244,19 @@ void DCanvas::Clear (int left, int top, int right, int bottom, int palcolor, uin } } +//========================================================================== +// +// no-ops. This is so that renderer backends can better manage the +// processing of the subsector drawing in the automap +// +//========================================================================== + +void DCanvas::StartSimplePolys() +{} + +void DCanvas::FinishSimplePolys() +{} + //========================================================================== // // DCanvas :: FillSimplePoly diff --git a/src/v_video.h b/src/v_video.h index fa1ce83df0..7091c518d4 100644 --- a/src/v_video.h +++ b/src/v_video.h @@ -216,6 +216,9 @@ public: // Fill an area with a texture virtual void FlatFill (int left, int top, int right, int bottom, FTexture *src, bool local_origin=false); + virtual void StartSimplePolys(); + virtual void FinishSimplePolys(); + // Fill a simple polygon with a texture virtual void FillSimplePoly(FTexture *tex, FVector2 *points, int npoints, double originx, double originy, double scalex, double scaley, DAngle rotation,