1 #pragma once 2 3 #include <memory> 4 5 namespace mbgl { 6 7 class RendererObserver; 8 class UpdateParameters; 9 10 // The RenderFrontend is the bridge between the Map and 11 // platform used to update and observer the Renderer 12 // 13 // It hides any threading specifics and always replies on 14 // the original thread. 15 class RendererFrontend { 16 public: 17 18 virtual ~RendererFrontend() = default; 19 20 // Must synchronously clean up the Renderer if set 21 virtual void reset() = 0; 22 23 // Implementer must bind the renderer observer to the renderer in a 24 // appropriate manner so that the callbacks occur on the main thread 25 virtual void setObserver(RendererObserver&) = 0; 26 27 // Coalescing updates is up to the implementer 28 virtual void update(std::shared_ptr<UpdateParameters>) = 0; 29 }; 30 31 } // namespace mbgl 32