PolyCoreServices.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /*
  2. * CoreServices.h
  3. * TAU
  4. *
  5. * Created by Ivan Safrin on 3/13/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. // @package Services
  10. #pragma once
  11. #include "PolyLogger.h"
  12. #include "PolyGlobals.h"
  13. #include "PolyRenderer.h"
  14. #include "PolyMaterialManager.h"
  15. #include "PolyScreenManager.h"
  16. #include "PolySceneManager.h"
  17. #include "PolyTimerManager.h"
  18. #include "PolyFontManager.h"
  19. #include "PolyTweenManager.h"
  20. #include "PolySoundManager.h"
  21. #include "PolyResourceManager.h"
  22. #include "PolyCore.h"
  23. #include "PolyConfig.h"
  24. #include "PolyModule.h"
  25. #include "PolyBasics.h"
  26. #include <map>
  27. namespace Polycode {
  28. class Renderer;
  29. class MaterialManager;
  30. class SceneManager;
  31. class ScreenManager;
  32. class TimerManager;
  33. class TweenManager;
  34. class ResourceManager;
  35. class SoundManager;
  36. class Core;
  37. class CoreMutex;
  38. class _PolyExport CoreServices : public EventDispatcher {
  39. public:
  40. static CoreServices *getInstance();
  41. static CoreMutex *getRenderMutex();
  42. void setRenderer(Renderer *renderer);
  43. Renderer *getRenderer();
  44. void Update(int elapsed);
  45. void setCore(Core *core);
  46. Core *getCore();
  47. void handleEvent(Event *event);
  48. void installModule(PolycodeModule *module);
  49. MaterialManager *getMaterialManager();
  50. ScreenManager *getScreenManager();
  51. SceneManager *getSceneManager();
  52. TimerManager *getTimerManager();
  53. TweenManager *getTweenManager();
  54. ResourceManager *getResourceManager();
  55. SoundManager *getSoundManager();
  56. FontManager *getFontManager();
  57. Config *getConfig();
  58. ~CoreServices();
  59. protected:
  60. CoreServices();
  61. private:
  62. static std::map <long, CoreServices*> instanceMap;
  63. static CoreMutex *renderMutex;
  64. vector<PolycodeModule*> modules;
  65. Core *core;
  66. Config *config;
  67. MaterialManager *materialManager;
  68. ScreenManager *screenManager;
  69. SceneManager *sceneManager;
  70. TimerManager *timerManager;
  71. TweenManager *tweenManager;
  72. ResourceManager *resourceManager;
  73. SoundManager *soundManager;
  74. FontManager *fontManager;
  75. Renderer *renderer;
  76. };
  77. }