supertux
screen.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_SUPERTUX_SCREEN_HPP
18 #define HEADER_SUPERTUX_SUPERTUX_SCREEN_HPP
19 
20 #include "sdk/integration.hpp"
21 
22 class Compositor;
23 class Controller;
24 
31 class Screen
32 {
33 public:
34  virtual ~Screen()
35  {}
36 
41  virtual void setup()
42  {}
44  virtual void leave()
45  {}
46 
51  virtual void draw(Compositor& compositor) = 0;
52 
57  virtual void update(float dt_sec, const Controller& controller) = 0;
58 
64  virtual IntegrationStatus get_status() const = 0;
65 };
66 
67 #endif
68 
69 /* EOF */
virtual void draw(Compositor &compositor)=0
gets called once per frame.
Definition: controller.hpp:57
Abstract base class for code the MainLoop runs exclusively and full-screen.
Definition: screen.hpp:31
virtual void update(float dt_sec, const Controller &controller)=0
gets called for once (per logical) frame.
virtual void leave()
gets called when the current screen is temporarily suspended
Definition: screen.hpp:44
Definition: compositor.hpp:29
Definition: integration.hpp:26
virtual IntegrationStatus get_status() const =0
Gives details about what the user is doing right now.
virtual void setup()
gets called before this screen gets activated (which is at least once before the first draw or update...
Definition: screen.hpp:41