1 #pragma once
2 
3 #include <mbgl/util/noncopyable.hpp>
4 
5 #include <string>
6 
7 namespace mbgl {
8 namespace gl {
9 
10 class Context;
11 
12 #ifndef NDEBUG
13 
14 class DebugGroup : private util::noncopyable {
15 public:
16     DebugGroup(const Context&, const std::string&);
17     ~DebugGroup();
18 
19 private:
20     const Context& context;
21 };
22 
23 #define __MBGL_DEBUG_GROUP_NAME2(counter) __MBGL_DEBUG_GROUP_##counter
24 #define __MBGL_DEBUG_GROUP_NAME(counter) __MBGL_DEBUG_GROUP_NAME2(counter)
25 #define MBGL_DEBUG_GROUP(context, name) const ::mbgl::gl::DebugGroup __MBGL_DEBUG_GROUP_NAME(__LINE__)(context, name);
26 
27 #else
28 
29 #define MBGL_DEBUG_GROUP(context, name)
30 
31 #endif
32 
33 } // namespace gl
34 } // namespace mbgl
35