summaryrefslogtreecommitdiff
path: root/src/mbgl/gfx/render_pass.hpp
blob: db5ba661baad3a34f065b9e063855bd5ed161c3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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