summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-04-02 16:34:32 +0200
committerKonstantin Käfer <mail@kkaefer.com>2019-04-05 11:49:17 +0200
commit5cc3d7a73328d6df9c16d27d6aca5b49ba085351 (patch)
tree0e8b9d6938846bf12ea63b1568c96852501a68cc /include
parent4053776c27cde354acc36c27120c54427087721b (diff)
downloadqtlocation-mapboxgl-5cc3d7a73328d6df9c16d27d6aca5b49ba085351.tar.gz
[core] move GLContextMode to RendererBackend
Diffstat (limited to 'include')
-rw-r--r--include/mbgl/gfx/renderer_backend.hpp14
-rw-r--r--include/mbgl/gl/renderer_backend.hpp2
-rw-r--r--include/mbgl/renderer/mode.hpp18
-rw-r--r--include/mbgl/renderer/renderer.hpp2
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();