diff options
Diffstat (limited to 'src/mbgl/gfx/render_pass.hpp')
-rw-r--r-- | src/mbgl/gfx/render_pass.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/mbgl/gfx/render_pass.hpp b/src/mbgl/gfx/render_pass.hpp new file mode 100644 index 0000000000..db5ba661ba --- /dev/null +++ b/src/mbgl/gfx/render_pass.hpp @@ -0,0 +1,41 @@ +#pragma once + +#include <mbgl/gfx/debug_group.hpp> +#include <mbgl/util/color.hpp> +#include <mbgl/util/optional.hpp> + +#include <cstdint> + +namespace mbgl { +namespace gfx { + +class Renderable; + +class RenderPassDescriptor { +public: + Renderable& renderable; + optional<Color> clearColor; + optional<float> clearDepth; + optional<int32_t> clearStencil; +}; + +class RenderPass { +protected: + RenderPass() = default; + + friend class DebugGroup<RenderPass>; + virtual void pushDebugGroup(const char* name) = 0; + virtual void popDebugGroup() = 0; + +public: + virtual ~RenderPass() = default; + RenderPass(const RenderPass&) = delete; + RenderPass& operator=(const RenderPass&) = delete; + + DebugGroup<RenderPass> createDebugGroup(const char* name) { + return { *this, name }; + } +}; + +} // namespace gfx +} // namespace mbgl |