1// SuperTux
2// Copyright (C) 2006 Matthias Braun <matze@braunis.de>
3// 2018 Ingo Ruhnke <grumbel@gmail.com>
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18#ifndef HEADER_SUPERTUX_VIDEO_PAINT_STYLE_HPP
19#define HEADER_SUPERTUX_VIDEO_PAINT_STYLE_HPP
20
21#include "video/blend.hpp"
22#include "video/color.hpp"
23#include "video/flip.hpp"
24
25class PaintStyle final
26{
27public:
28 PaintStyle() :
29 m_color(Color::WHITE),
30 m_alpha(1.0f),
31 m_blend(),
32 m_flip(NO_FLIP)
33 {}
34
35 PaintStyle& set_color(const Color& color) {
36 m_color = color;
37 return *this;
38 }
39
40 PaintStyle& set_alpha(const float& alpha) {
41 m_alpha = alpha;
42 return *this;
43 }
44
45 PaintStyle& set_blend(const Blend& blend) {
46 m_blend = blend;
47 return *this;
48 }
49
50 PaintStyle& set_flip(const Flip& flip) {
51 m_flip = flip;
52 return *this;
53 }
54
55 const Color& get_color() const { return m_color; }
56 const float& get_alpha() const { return m_alpha; }
57 const Blend& get_blend() const { return m_blend; }
58 const Flip& get_flip() const { return m_flip; }
59
60private:
61 Color m_color;
62 float m_alpha;
63 Blend m_blend;
64 Flip m_flip;
65};
66
67#endif
68
69/* EOF */
70