gamecore.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Globals
  4. //
  5. //////////////////////////////////////////////////////////////////////////////
  6. TRef<Engine> GetEngine();
  7. TRef<Modeler> GetModeler();
  8. TRef<EffectWindow> GetWindow();
  9. //////////////////////////////////////////////////////////////////////////////
  10. //
  11. // GameScene
  12. //
  13. //////////////////////////////////////////////////////////////////////////////
  14. class GameScene : public IObject
  15. {
  16. public:
  17. virtual void InitScene() = 0;
  18. virtual TRef<Image> GetSceneImage() = 0;
  19. virtual void UpdateScene(Time time, float dtime) = 0;
  20. virtual void TermScene() = 0;
  21. };
  22. //////////////////////////////////////////////////////////////////////////////
  23. //
  24. // GameContext
  25. //
  26. //////////////////////////////////////////////////////////////////////////////
  27. class GameContext : public IObject
  28. {
  29. public:
  30. // creation
  31. static TRef<GameContext> Create();
  32. // incoming calls from app
  33. virtual void Initialize() = 0;
  34. virtual TRef<Image> GetImage() = 0;
  35. virtual void Update(Time time, float dtime) = 0;
  36. virtual void Terminate() = 0;
  37. // scene control
  38. virtual void SwitchToScene(GameScene* pscene) = 0;
  39. };