diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-06-13 10:50:16 +0300 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-07-18 10:45:12 +0200 |
commit | 3832f8d0d8194b81ea34a045e19b0d5bc7a89e25 (patch) | |
tree | bbb4b277e1e74bde457271b9b9a5b6a9ec3ad5fb /src/mbgl/renderer/renderer_impl.hpp | |
parent | 39a732d7ae3cb1b927d94c4b1154b42d9565356a (diff) | |
download | qtlocation-mapboxgl-3832f8d0d8194b81ea34a045e19b0d5bc7a89e25.tar.gz |
[core] renderer interface
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.hpp')
-rw-r--r-- | src/mbgl/renderer/renderer_impl.hpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/mbgl/renderer/renderer_impl.hpp b/src/mbgl/renderer/renderer_impl.hpp new file mode 100644 index 0000000000..645b33b354 --- /dev/null +++ b/src/mbgl/renderer/renderer_impl.hpp @@ -0,0 +1,65 @@ +#pragma once +#include <mbgl/renderer/renderer.hpp> +#include <mbgl/renderer/renderer_observer.hpp> +#include <mbgl/renderer/render_style_observer.hpp> +#include <mbgl/style/style.hpp> + +#include <mbgl/map/backend.hpp> + +#include <memory> +#include <string> + +namespace mbgl { + +enum class RenderState : uint8_t { + Never, + Partial, + Fully, +}; + +class Painter; +class RenderStyle; +class TransformState; +class View; + + +class Renderer::Impl : public RenderStyleObserver { +public: + Impl(Backend&, float pixelRatio_, FileSource&, Scheduler&, GLContextMode, + const optional<std::string> programCacheDir); + ~Impl() final; + + void setObserver(RendererObserver*); + + void render(View&, const UpdateParameters&); + + std::vector<Feature> queryRenderedFeatures(const ScreenLineString&, const RenderedQueryOptions&) const; + std::vector<Feature> querySourceFeatures(const std::string& sourceID, const SourceQueryOptions&) const; + + void onLowMemory(); + + void dumDebugLogs() ; + + // RenderStyleObserver implementation + void onInvalidate()override; + void onResourceError(std::exception_ptr) override; + +private: + friend class Renderer; + + Backend& backend; + + RendererObserver* observer; + + const GLContextMode contextMode; + const float pixelRatio; + const optional<std::string> programCacheDir; + + RenderState renderState = RenderState::Never; + + std::unique_ptr<RenderStyle> renderStyle; + std::unique_ptr<Painter> painter; + +}; + +} // namespace mbgl |