#pragma once #include #include #include namespace mbgl { class RendererObserver; class RenderStaticData; class RenderTree; namespace gfx { class RendererBackend; } // namespace gfx class Renderer::Impl { public: Impl(gfx::RendererBackend&, float pixelRatio_, const optional& localFontFamily_); ~Impl(); private: friend class Renderer; void setObserver(RendererObserver*); void render(const RenderTree&); void reduceMemoryUse(); // TODO: Move orchestrator to Map::Impl. RenderOrchestrator orchestrator; gfx::RendererBackend& backend; RendererObserver* observer; const float pixelRatio; std::unique_ptr staticData; enum class RenderState { Never, Partial, Fully, }; RenderState renderState = RenderState::Never; }; } // namespace mbgl