#pragma once #include #include #include #include #include namespace mbgl { class Renderer; class RendererBackend; // Default implementation for RendererFrontend class AsyncRendererFrontend : public mbgl::RendererFrontend { public: AsyncRendererFrontend(std::unique_ptr, RendererBackend&, View&); ~AsyncRendererFrontend() override; void reset() override; void update(std::shared_ptr updateParameters_) override; void setObserver(RendererObserver& observer_) override; Renderer* getRenderer(); private: std::unique_ptr renderer; View& view; std::shared_ptr updateParameters; util::AsyncTask asyncInvalidate; }; } // namespace mbgl