diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-01 19:34:47 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-01 19:34:47 +0000 |
commit | 6c8446cddb37df732fc9e5fc21f98e31968ce634 (patch) | |
tree | 25515ae78969e2f0ef216a5cbef8a650b217e8f8 /src/core/gameinterface.h | |
parent | f794b9ee52293cefd6ac73fdf0d2a01c5388f057 (diff) |
interface cleanup
Diffstat (limited to 'src/core/gameinterface.h')
-rw-r--r-- | src/core/gameinterface.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/core/gameinterface.h b/src/core/gameinterface.h new file mode 100644 index 0000000..3bd887c --- /dev/null +++ b/src/core/gameinterface.h @@ -0,0 +1,44 @@ +/* + core/game.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_CORE_GAMEINTERFACE_H__ +#define __INCLUDED_CORE_GAMEINTERFACE_H__ + +namespace core +{ + +/// abstract interface from the core to the game-specific code +/** The real game class has to derive from this class + */ +class GameInterface { +public: + /// create a new game singleton + GameInterface(); + /// destroy the game singleton + virtual ~GameInterface(); + + /// initialize the game + virtual void init() = 0; + + /// shutdown the game + virtual void shutdown() = 0; + + /// run one frame of the game + /** @param sec time since the previous frame, in seconds + */ + virtual void frame (float sec) = 0; + + /// a pointer to the current game instance + static GameInterface * instance(); + +private: + /// game singleton + static GameInterface *gameinterface_instance; +}; + +} + +#endif // __INCLUDED_CORE_GAMEINTERFACE_H__ |