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_RENDERER_HPP
18#define HEADER_SUPERTUX_VIDEO_RENDERER_HPP
19
20#include "math/rect.hpp"
21#include "math/vector.hpp"
22#include "video/color.hpp"
23#include "video/texture_ptr.hpp"
24
25class Painter;
26class Rect;
27struct DrawingRequest;
28struct SDL_Window;
29
30class Renderer
31{
32public:
33 virtual ~Renderer() {}
34
35 virtual void start_draw() = 0;
36 virtual void end_draw() = 0;
37
38 virtual Painter& get_painter() = 0;
39
40 virtual Rect get_rect() const = 0;
41 virtual Size get_logical_size() const = 0;
42
43 virtual TexturePtr get_texture() const = 0;
44};
45
46#endif
47
48/* EOF */
49