GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/resources/atlas/textureatlas.h Lines: 0 13 0.0 %
Date: 2021-03-17 Branches: 0 8 0.0 %

Line Branch Exec Source
1
/*
2
 *  The ManaPlus Client
3
 *  Copyright (C) 2012-2019  The ManaPlus Developers
4
 *  Copyright (C) 2019-2021  Andrei Karas
5
 *
6
 *  This file is part of The ManaPlus Client.
7
 *
8
 *  This program is free software; you can redistribute it and/or modify
9
 *  it under the terms of the GNU General Public License as published by
10
 *  the Free Software Foundation; either version 2 of the License, or
11
 *  any later version.
12
 *
13
 *  This program is distributed in the hope that it will be useful,
14
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 *  GNU General Public License for more details.
17
 *
18
 *  You should have received a copy of the GNU General Public License
19
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 */
21
22
#ifndef RESOURCES_ATLAS_TEXTUREATLAS_H
23
#define RESOURCES_ATLAS_TEXTUREATLAS_H
24
25
#ifdef USE_OPENGL
26
27
#include "utils/foreach.h"
28
#include "utils/stringvector.h"
29
30
#include "resources/atlas/atlasitem.h"
31
32
#include "localconsts.h"
33
34
class AtlasResource;
35
class Image;
36
class Resource;
37
38
struct AtlasItem;
39
40
struct TextureAtlas final : public MemoryCounter
41
{
42
    TextureAtlas() :
43
        MemoryCounter(),
44
        name(),
45
        atlasImage(nullptr),
46
        width(0),
47
        height(0),
48
        items()
49
    {
50
    }
51
52
    A_DELETE_COPY(TextureAtlas)
53
54
    int calcMemoryLocal() const override final
55
    {
56
        return static_cast<int>(sizeof(TextureAtlas) +
57
            items.capacity() * sizeof(AtlasItem*));
58
    }
59
60
    int calcMemoryChilds(const int level) const override final
61
    {
62
        int sz = 0;
63
        FOR_EACH (STD_VECTOR<AtlasItem*>::const_iterator, it, items)
64
        {
65
            AtlasItem *const item = *it;
66
            sz += item->calcMemory(level + 1);
67
        }
68
        return sz;
69
    }
70
71
    std::string getCounterName() const override
72
    { return name; }
73
74
    std::string name;
75
    Image *atlasImage;
76
    int width;
77
    int height;
78
    STD_VECTOR <AtlasItem*> items;
79
};
80
81
#endif  // USE_OPENGL
82
#endif  // RESOURCES_ATLAS_TEXTUREATLAS_H