#pragma once #include namespace mbgl { namespace gfx { class CommandEncoder { protected: explicit CommandEncoder() = default; friend class DebugGroup; virtual void pushDebugGroup(const char* name) = 0; virtual void popDebugGroup() = 0; public: virtual ~CommandEncoder() = default; CommandEncoder(const CommandEncoder&) = delete; CommandEncoder& operator=(const CommandEncoder&) = delete; DebugGroup createDebugGroup(const char* name) { return { *this, name }; } }; } // namespace gfx } // namespace mbgl