ManaPlus
src
resources
atlas
textureatlas.h
Go to the documentation of this file.
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
atlasitem.h
AtlasResource
Definition:
atlasresource.h:34
Image
MemoryCounter
Definition:
memorycounter.h:30
MemoryCounter::calcMemory
int calcMemory(const int level) const
Definition:
memorycounter.cpp:37
Resource
Definition:
resource.h:35
foreach.h
FOR_EACH
#define FOR_EACH(type, iter, array)
Definition:
foreach.h:25
localconsts.h
override
#define override
Definition:
localconsts.h:47
final
#define final
Definition:
localconsts.h:46
A_DELETE_COPY
#define A_DELETE_COPY(func)
Definition:
localconsts.h:53
nullptr
#define nullptr
Definition:
localconsts.h:45
stringvector.h
AtlasItem
Definition:
atlasitem.h:30
TextureAtlas
Definition:
textureatlas.h:41
TextureAtlas::name
std::string name
Definition:
textureatlas.h:74
TextureAtlas::calcMemoryChilds
int calcMemoryChilds(const int level) const
Definition:
textureatlas.h:60
TextureAtlas::width
int width
Definition:
textureatlas.h:76
TextureAtlas::atlasImage
Image * atlasImage
Definition:
textureatlas.h:75
TextureAtlas::getCounterName
std::string getCounterName() const
Definition:
textureatlas.h:71
TextureAtlas::height
int height
Definition:
textureatlas.h:77
TextureAtlas::calcMemoryLocal
int calcMemoryLocal() const
Definition:
textureatlas.h:54
TextureAtlas::items
std::vector< AtlasItem * > items
Definition:
textureatlas.h:78
TextureAtlas::TextureAtlas
TextureAtlas()
Definition:
textureatlas.h:42
Generated on Wed Mar 17 2021 19:19:09 for ManaPlus by
1.9.1