#pragma once #include #include #include #include #include namespace mbgl { namespace gfx { // Common headless backend interface, provides HeadlessBackend backend factory // and enables extending gfx::Renderable with platform specific implementation // of readStillImage. class HeadlessBackend : public gfx::Renderable { public: // Factory. static std::unique_ptr Create(const Size size = { 256, 256 }, const gfx::ContextMode contextMode = gfx::ContextMode::Unique) { return Backend::Create(size, contextMode); } virtual PremultipliedImage readStillImage() = 0; virtual RendererBackend* getRendererBackend() = 0; void setSize(Size); protected: HeadlessBackend(Size); }; } // namespace gfx } // namespace mbgl