summaryrefslogtreecommitdiff
path: root/src/mbgl/gl/object.cpp
blob: 2c5f1bca1f376036da8249f04c792bf53ee746d8 (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
42
43
44
45
46
47
48
49
50
51
52
53
#include <mbgl/gl/object.hpp>
#include <mbgl/gl/context.hpp>

#include <cassert>

namespace mbgl {
namespace gl {
namespace detail {

void ProgramDeleter::operator()(ProgramID id) const {
    assert(context);
    context->abandonedPrograms.push_back(id);
}

void ShaderDeleter::operator()(ShaderID id) const {
    assert(context);
    context->abandonedShaders.push_back(id);
}

void BufferDeleter::operator()(BufferID id) const {
    assert(context);
    context->abandonedBuffers.push_back(id);
}

void TextureDeleter::operator()(TextureID id) const {
    assert(context);
    if (context->pooledTextures.size() >= TextureMax) {
        context->abandonedTextures.push_back(id);
    } else {
        context->pooledTextures.push_back(id);
    }
}

void VertexArrayDeleter::operator()(VertexArrayID id) const {
    assert(context);
    if (id != 0) {
        context->abandonedVertexArrays.push_back(id);
    }
}

void FramebufferDeleter::operator()(FramebufferID id) const {
    assert(context);
    context->abandonedFramebuffers.push_back(id);
}

void RenderbufferDeleter::operator()(RenderbufferID id) const {
    assert(context);
    context->abandonedRenderbuffers.push_back(id);
}

} // namespace detail
} // namespace gl
} // namespace mbgl