supertux
src
video
texture.hpp
1
// SuperTux
2
// Copyright (C) 2006 Matthias Braun <matze@braunis.de>
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
#ifndef HEADER_SUPERTUX_VIDEO_TEXTURE_HPP
18
#define HEADER_SUPERTUX_VIDEO_TEXTURE_HPP
19
20
#include <string>
21
#include <tuple>
22
#include <optional>
23
24
#include "math/rect.hpp"
25
#include "video/flip.hpp"
26
30
class
Texture
31
{
32
friend
class
TextureManager
;
33
34
public
:
36
using
Key
= std::tuple<std::string, Rect>;
37
38
protected
:
39
Texture
();
40
41
public
:
42
virtual
~
Texture
();
43
44
virtual
int
get_texture_width()
const
= 0;
45
virtual
int
get_texture_height()
const
= 0;
46
47
virtual
int
get_image_width()
const
= 0;
48
virtual
int
get_image_height()
const
= 0;
49
50
private
:
51
std::optional<Key> m_cache_key;
52
53
private
:
54
Texture
(
const
Texture
&) =
delete
;
55
Texture
& operator=(
const
Texture
&) =
delete
;
56
};
57
58
#endif
59
60
/* EOF */
TextureManager
Definition:
texture_manager.hpp:40
Texture
This class is a wrapper around a texture handle.
Definition:
texture.hpp:30
Key
Definition:
key.hpp:27
Generated by
1.8.13