Began implementing engine_core class.
[plastic-engine.git] / src / engine.hpp
bloba71a0552f81760cd78392a297810422fb00c967c
1 // Plastic Engine
2 // Copyright (C) 2008 Albert Brown
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.
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/>.
17 #include <list>
20 class engine_subsystem
22 private:
24 public:
25 void tick();
28 class engine_core
30 private:
31 std::list<engine_subsystem *> _subsystems;
33 static engine_core *_instance;
34 public:
35 engine_core(int argc, char *argv[]);
36 ~engine_core();
38 void register_subsystem(engine_subsystem *);
39 void release_subsystem(engine_subsystem *);
41 void run();