diff --git a/src/openrct2/Context.cpp b/src/openrct2/Context.cpp index 5a6b48ec72..a8770c749f 100644 --- a/src/openrct2/Context.cpp +++ b/src/openrct2/Context.cpp @@ -220,6 +220,11 @@ namespace OpenRCT2 return _drawingEngine.get(); } + virtual Paint::Painter* GetPainter() override + { + return _painter.get(); + } + int32_t RunOpenRCT2(int argc, const char** argv) override { if (Initialise()) diff --git a/src/openrct2/Context.h b/src/openrct2/Context.h index 902bf87293..dfe2479034 100644 --- a/src/openrct2/Context.h +++ b/src/openrct2/Context.h @@ -88,6 +88,11 @@ namespace OpenRCT2 interface IUiContext; } + namespace Paint + { + interface Painter; + } + /** * Represents an instance of OpenRCT2 and can be used to get various services. */ @@ -107,6 +112,7 @@ namespace OpenRCT2 virtual IReplayManager* GetReplayManager() abstract; virtual int32_t GetDrawingEngineType() abstract; virtual Drawing::IDrawingEngine* GetDrawingEngine() abstract; + virtual Paint::Painter* GetPainter() abstract; virtual int32_t RunOpenRCT2(int argc, const char** argv) abstract; diff --git a/src/openrct2/paint/Painter.h b/src/openrct2/paint/Painter.h index 4302713867..cb338a0cfd 100644 --- a/src/openrct2/paint/Painter.h +++ b/src/openrct2/paint/Painter.h @@ -30,7 +30,7 @@ namespace OpenRCT2 namespace Paint { - class Painter final + interface Painter final { private: std::shared_ptr const _uiContext; @@ -41,11 +41,11 @@ namespace OpenRCT2 public: explicit Painter(const std::shared_ptr& uiContext); - void Paint(Drawing::IDrawingEngine& de); + void Paint(Drawing::IDrawingEngine & de); private: - void PaintReplayNotice(rct_drawpixelinfo* dpi, const char* text); - void PaintFPS(rct_drawpixelinfo* dpi); + void PaintReplayNotice(rct_drawpixelinfo * dpi, const char* text); + void PaintFPS(rct_drawpixelinfo * dpi); void MeasureFPS(); }; } // namespace Paint