diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-04-02 16:34:32 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-04-05 11:49:17 +0200 |
commit | 5cc3d7a73328d6df9c16d27d6aca5b49ba085351 (patch) | |
tree | 0e8b9d6938846bf12ea63b1568c96852501a68cc /include/mbgl | |
parent | 4053776c27cde354acc36c27120c54427087721b (diff) | |
download | qtlocation-mapboxgl-5cc3d7a73328d6df9c16d27d6aca5b49ba085351.tar.gz |
[core] move GLContextMode to RendererBackend
Diffstat (limited to 'include/mbgl')
-rw-r--r-- | include/mbgl/gfx/renderer_backend.hpp | 14 | ||||
-rw-r--r-- | include/mbgl/gl/renderer_backend.hpp | 2 | ||||
-rw-r--r-- | include/mbgl/renderer/mode.hpp | 18 | ||||
-rw-r--r-- | include/mbgl/renderer/renderer.hpp | 2 |
4 files changed, 13 insertions, 23 deletions
diff --git a/include/mbgl/gfx/renderer_backend.hpp b/include/mbgl/gfx/renderer_backend.hpp index 032c7021da..29f6b43a8f 100644 --- a/include/mbgl/gfx/renderer_backend.hpp +++ b/include/mbgl/gfx/renderer_backend.hpp @@ -12,10 +12,15 @@ class Context; class Renderable; class BackendScope; -// TODO: Rename to "Device" +// We can make some optimizations if we know that the drawing context is not shared with other code. +enum class ContextMode : bool { + Unique, + Shared, +}; + class RendererBackend { protected: - explicit RendererBackend(); + explicit RendererBackend(ContextMode); public: virtual ~RendererBackend(); @@ -25,6 +30,10 @@ public: // Returns the device's context. Context& getContext(); + bool contextIsShared() const { + return contextMode == ContextMode::Shared; + } + // Returns a reference to the default surface that should be rendered on. virtual Renderable& getDefaultRenderable() = 0; @@ -44,6 +53,7 @@ protected: protected: std::unique_ptr<Context> context; + const ContextMode contextMode; std::once_flag initialized; friend class BackendScope; diff --git a/include/mbgl/gl/renderer_backend.hpp b/include/mbgl/gl/renderer_backend.hpp index 7ef8759477..ba87e4ce4f 100644 --- a/include/mbgl/gl/renderer_backend.hpp +++ b/include/mbgl/gl/renderer_backend.hpp @@ -14,7 +14,7 @@ using FramebufferID = uint32_t; class RendererBackend : public gfx::RendererBackend { public: - RendererBackend(); + RendererBackend(gfx::ContextMode); ~RendererBackend() override; // Returns the backend's context which manages OpenGL state. diff --git a/include/mbgl/renderer/mode.hpp b/include/mbgl/renderer/mode.hpp deleted file mode 100644 index 6ff42d8058..0000000000 --- a/include/mbgl/renderer/mode.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include <cstdint> - -namespace mbgl { - -using EnumType = uint32_t; - -// We can avoid redundant GL calls when it is known that the GL context is not -// being shared. In a shared GL context case, we need to make sure that the -// correct GL configurations are in use - they might have changed between render -// calls. -enum class GLContextMode : EnumType { - Unique, - Shared, -}; - -} // namespace mbgl diff --git a/include/mbgl/renderer/renderer.hpp b/include/mbgl/renderer/renderer.hpp index aa06210804..f50946aed1 100644 --- a/include/mbgl/renderer/renderer.hpp +++ b/include/mbgl/renderer/renderer.hpp @@ -1,7 +1,6 @@ #pragma once #include <mbgl/renderer/query.hpp> -#include <mbgl/renderer/mode.hpp> #include <mbgl/annotation/annotation.hpp> #include <mbgl/util/geo.hpp> #include <mbgl/util/geojson.hpp> @@ -26,7 +25,6 @@ class RendererBackend; class Renderer { public: Renderer(gfx::RendererBackend&, float pixelRatio_, Scheduler&, - GLContextMode = GLContextMode::Unique, const optional<std::string> programCacheDir = {}, const optional<std::string> localFontFamily = {}); ~Renderer(); |