Do not override global blitter to render overlay/plans to cache buffer

Creates thread safety issues with active draw jobs
This commit is contained in:
Jonathan G Rennison
2024-02-04 01:29:22 +00:00
parent 816d4eb657
commit 4a9803c6f0
6 changed files with 63 additions and 55 deletions

View File

@@ -84,7 +84,7 @@ public:
bool CacheStillValid() const;
void MarkStationViewportLinksDirty(const Station *st);
void PrepareDraw();
void Draw(const DrawPixelInfo *dpi) const;
void Draw(struct Blitter *blitter, const DrawPixelInfo *dpi) const;
void SetCargoMask(CargoTypes cargo_mask);
void SetCompanyMask(CompanyMask company_mask);
@@ -117,15 +117,15 @@ protected:
Point GetStationMiddle(const Station *st) const;
void RefreshDrawCache();
void DrawLinks(const DrawPixelInfo *dpi) const;
void DrawStationDots(const DrawPixelInfo *dpi) const;
void DrawContent(const DrawPixelInfo *dpi, Point pta, Point ptb, const LinkProperties &cargo) const;
void DrawLinks(struct Blitter *blitter, const DrawPixelInfo *dpi) const;
void DrawStationDots(struct Blitter *blitter, const DrawPixelInfo *dpi) const;
void DrawContent(struct Blitter *blitter, const DrawPixelInfo *dpi, Point pta, Point ptb, const LinkProperties &cargo) const;
bool IsLinkVisible(Point pta, Point ptb, const DrawPixelInfo *dpi, int padding = 0) const;
bool IsPointVisible(Point pt, const DrawPixelInfo *dpi, int padding = 0) const;
void GetWidgetDpi(DrawPixelInfo *dpi, uint margin = 0) const;
static void AddStats(CargoID new_cargo, uint new_cap, uint new_usg, uint new_plan, uint32_t time, bool new_shared, LinkProperties &cargo);
static void DrawVertex(const DrawPixelInfo *dpi, int x, int y, int size, int colour, int border_colour);
static void DrawVertex(struct Blitter *blitter, const DrawPixelInfo *dpi, int x, int y, int size, int colour, int border_colour);
};
void ShowLinkGraphLegend();