Files
MapLibreParticleLab/platform/default/mbgl/gl/headless_frontend.hpp
Chris Loer b4c781aef7 [core, macos, ios] Unit tests for LocalGlyphRasterizer
Core test uses stubbed "glyph.pbf" without Chinese glyphs
Darwin test relies on locally available "PingFang" font.
Android test relies on locally available "Droid" font. 'expected.png' is NOT correct b/c I haven't figured out how to run unit tests on Android yet.
2017-12-11 10:43:00 -08:00

53 lines
1.5 KiB
C++

#pragma once
#include <mbgl/renderer/mode.hpp>
#include <mbgl/renderer/renderer_frontend.hpp>
#include <mbgl/gl/headless_backend.hpp>
#include <mbgl/util/async_task.hpp>
#include <mbgl/util/optional.hpp>
#include <memory>
namespace mbgl {
class FileSource;
class Scheduler;
class Renderer;
class RendererBackend;
class Map;
class TransformState;
class HeadlessFrontend : public RendererFrontend {
public:
HeadlessFrontend(float pixelRatio_, FileSource&, Scheduler&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {});
HeadlessFrontend(Size, float pixelRatio_, FileSource&, Scheduler&, const optional<std::string> programCacheDir = {}, GLContextMode mode = GLContextMode::Unique, const optional<std::string> localFontFamily = {});
~HeadlessFrontend() override;
void reset() override;
void update(std::shared_ptr<UpdateParameters>) override;
void setObserver(RendererObserver&) override;
Size getSize() const;
void setSize(Size);
Renderer* getRenderer();
RendererBackend* getBackend();
PremultipliedImage readStillImage();
PremultipliedImage render(Map&);
optional<TransformState> getTransformState() const;
private:
Size size;
float pixelRatio;
HeadlessBackend backend;
util::AsyncTask asyncInvalidate;
std::unique_ptr<Renderer> renderer;
std::shared_ptr<UpdateParameters> updateParameters;
};
} // namespace mbgl