32 lines
826 B
C++
32 lines
826 B
C++
#pragma once
|
|
|
|
namespace mbgl {
|
|
|
|
class Backend;
|
|
|
|
class BackendScope {
|
|
public:
|
|
// There are two types of scopes: Creating an "Implicit" scope tells Mapbox GL that the
|
|
// supporting windowing system has already activated the GL Backend and that no further actions
|
|
// are required. Creating an "Explicit" scope actually enables the GL Backend, and disables it
|
|
// when the BackendScope is destroyed.
|
|
enum class ScopeType : bool {
|
|
Implicit,
|
|
Explicit,
|
|
};
|
|
|
|
BackendScope(Backend&, ScopeType = ScopeType::Explicit);
|
|
~BackendScope();
|
|
|
|
// Returns true when there is currently a BackendScope active in this thread.
|
|
static bool exists();
|
|
|
|
private:
|
|
BackendScope* priorScope;
|
|
BackendScope* nextScope;
|
|
Backend& backend;
|
|
const ScopeType scopeType;
|
|
};
|
|
|
|
} // namespace mbgl
|