Files
MapLibreParticleLab/include/mbgl/gfx/backend_scope.hpp
Bart Louwers 550f64be22 core: rename mbgl namespace to mln (#4487)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-08-14 23:25:20 +02:00

39 lines
994 B
C++

#pragma once
namespace mln {
namespace gfx {
class RendererBackend;
class BackendScope {
public:
/// There are two types of scopes: Creating an "Implicit" scope tells MapLibre
/// Native that the supporting windowing system has already activated the
/// RenderBackend and that no further actions are required. Creating an "Explicit"
/// scope (the default) actually enables the RenderBackend, and disables it when
/// the BackendScope is destroyed.
enum class ScopeType : bool {
Implicit,
Explicit,
};
BackendScope(RendererBackend&, ScopeType = ScopeType::Explicit);
~BackendScope();
// Returns true when there is currently a BackendScope active in this thread.
static bool exists();
private:
void activate();
void deactivate();
BackendScope* priorScope;
BackendScope* nextScope;
RendererBackend& backend;
const ScopeType scopeType;
bool activated = false;
};
} // namespace gfx
} // namespace mln