summaryrefslogtreecommitdiff
path: root/src/mbgl/gl/renderbuffer.hpp
blob: 0592557a7fd39c93f2725efee1cd33f512eae53e (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
#pragma once

#include <mbgl/gl/object.hpp>
#include <mbgl/util/size.hpp>

namespace mbgl {
namespace gl {

template <RenderbufferType renderbufferType>
class Renderbuffer {
public:
    Renderbuffer(Size size_, UniqueRenderbuffer renderbuffer_, bool dirty_ = false)
        : size(std::move(size_)), renderbuffer(std::move(renderbuffer_)), dirty(dirty_) {
    }

    using type = std::integral_constant<RenderbufferType, renderbufferType>;
    Size size;
    UniqueRenderbuffer renderbuffer;

    void shouldClear(bool clear) {
        dirty = clear;
    }
    bool needsClearing() {
        return dirty;
    }

private:
    bool dirty;
};

} // namespace gl
} // namespace mbgl