summaryrefslogtreecommitdiff
path: root/platform/default/include/mbgl/gl
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2018-12-13 18:45:29 +0100
committerKonstantin Käfer <mail@kkaefer.com>2018-12-14 11:03:03 +0100
commit1d8235f5b899a2cd8414522b2d72b96fab91577b (patch)
tree2ab56dce064de872525db7f24ba150a9065c4757 /platform/default/include/mbgl/gl
parentc2a4a8822ce9577c972975da61034a30fb0fe3e9 (diff)
downloadqtlocation-mapboxgl-1d8235f5b899a2cd8414522b2d72b96fab91577b.tar.gz
[build] rework platform/default directory and add -files.txt for vendored libs
Diffstat (limited to 'platform/default/include/mbgl/gl')
-rw-r--r--platform/default/include/mbgl/gl/headless_backend.hpp50
-rw-r--r--platform/default/include/mbgl/gl/headless_frontend.hpp61
2 files changed, 111 insertions, 0 deletions
diff --git a/platform/default/include/mbgl/gl/headless_backend.hpp b/platform/default/include/mbgl/gl/headless_backend.hpp
new file mode 100644
index 0000000000..7757037533
--- /dev/null
+++ b/platform/default/include/mbgl/gl/headless_backend.hpp
@@ -0,0 +1,50 @@
+#pragma once
+
+#include <mbgl/renderer/renderer_backend.hpp>
+
+#include <memory>
+#include <functional>
+
+namespace mbgl {
+
+class HeadlessBackend : public RendererBackend {
+public:
+ HeadlessBackend(Size = { 256, 256 });
+ ~HeadlessBackend() override;
+
+ void bind() override;
+ Size getFramebufferSize() const override;
+ void updateAssumedState() override;
+
+ void setSize(Size);
+ PremultipliedImage readStillImage();
+
+ class Impl {
+ public:
+ virtual ~Impl() = default;
+ virtual gl::ProcAddress getExtensionFunctionPointer(const char*) = 0;
+ virtual void activateContext() = 0;
+ virtual void deactivateContext() {}
+ };
+
+private:
+ // Implementation specific functions
+ gl::ProcAddress getExtensionFunctionPointer(const char*) override;
+
+ void activate() override;
+ void deactivate() override;
+
+ void createImpl();
+
+private:
+ std::unique_ptr<Impl> impl;
+
+ Size size;
+ float pixelRatio;
+ bool active = false;
+
+ class View;
+ std::unique_ptr<View> view;
+};
+
+} // namespace mbgl
diff --git a/platform/default/include/mbgl/gl/headless_frontend.hpp b/platform/default/include/mbgl/gl/headless_frontend.hpp
new file mode 100644
index 0000000000..18f0cfa537
--- /dev/null
+++ b/platform/default/include/mbgl/gl/headless_frontend.hpp
@@ -0,0 +1,61 @@
+#pragma once
+
+#include <mbgl/map/camera.hpp>
+#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();
+ CameraOptions getCameraOptions();
+
+ bool hasImage(const std::string&);
+ bool hasLayer(const std::string&);
+ bool hasSource(const std::string&);
+
+ ScreenCoordinate pixelForLatLng(const LatLng&);
+ LatLng latLngForPixel(const ScreenCoordinate&);
+
+ 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