Viewport: Cache landscape pixels in map mode

Avoid invalidating landscape pixels for non-landscape updates
(vehicles, overlays, etc.)
This commit is contained in:
Jonathan G Rennison
2020-10-01 23:11:15 +01:00
parent 8071976b0e
commit a474e71243
23 changed files with 268 additions and 143 deletions

View File

@@ -36,10 +36,12 @@ void UpdateViewportSizeZoom(Viewport *vp);
void MarkViewportDirty(Viewport * const vp, int left, int top, int right, int bottom, ViewportMarkDirtyFlags flags);
void MarkAllViewportsDirty(int left, int top, int right, int bottom, ViewportMarkDirtyFlags flags = VMDF_NONE);
void MarkAllViewportMapsDirty(int left, int top, int right, int bottom);
void MarkAllViewportMapLandscapesDirty();
void MarkWholeNonMapViewportsDirty();
void MarkAllViewportOverlayStationLinksDirty(const Station *st);
void MarkAllRouteStepsDirty(const Vehicle *veh);
void MarkViewportLineDirty(Viewport * const vp, const Point from_pt, const Point to_pt, const int block_radius, ViewportMarkDirtyFlags flags);
void MarkTileLineDirty(const TileIndex from_tile, const TileIndex to_tile);
void MarkTileLineDirty(const TileIndex from_tile, const TileIndex to_tile, ViewportMarkDirtyFlags flags);
void MarkAllRoutePathsDirty(const Vehicle *veh);
void CheckMarkDirtyFocusedRoutePaths(const Vehicle *veh);
@@ -112,7 +114,7 @@ static inline void MarkTileDirtyByTile(TileIndex tile, ViewportMarkDirtyFlags fl
void MarkTileGroundDirtyByTile(TileIndex tile, ViewportMarkDirtyFlags flags);
ViewportMapType ChangeRenderMode(const Viewport *vp, bool down);
void ChangeRenderMode(Viewport *vp, bool down);
Point GetViewportStationMiddle(const Viewport *vp, const Station *st);