blob: f72b0ccdde787e86cbc98fd7415e96d28438f99e [file] [log] [blame]
#pragma once
#include <memory>
namespace mbgl {
class RendererObserver;
class UpdateParameters;
// The RenderFrontend is the bridge between the Map and
// platform used to update and observer the Renderer
//
// It hides any threading specifics and always replies on
// the original thread.
class RendererFrontend {
public:
virtual ~RendererFrontend() = default;
// Must synchronously clean up the Renderer if set
virtual void reset() = 0;
// Implementer must bind the renderer observer to the renderer in a
// appropriate manner so that the callbacks occur on the main thread
virtual void setObserver(RendererObserver&) = 0;
// Coalescing updates is up to the implementer
virtual void update(std::shared_ptr<UpdateParameters>) = 0;
};
} // namespace mbgl