From 5cc3d7a73328d6df9c16d27d6aca5b49ba085351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 2 Apr 2019 16:34:32 +0200 Subject: [core] move GLContextMode to RendererBackend --- include/mbgl/gfx/renderer_backend.hpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'include/mbgl/gfx') 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; + const ContextMode contextMode; std::once_flag initialized; friend class BackendScope; -- cgit v1.2.1