Context.pkg 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. $#include "Audio.h"
  2. $#include "Console.h"
  3. $#include "Context.h"
  4. $#include "DebugHud.h"
  5. $#include "DebugRenderer.h"
  6. $#include "Engine.h"
  7. $#include "FileSystem.h"
  8. $#include "Graphics.h"
  9. $#include "Input.h"
  10. $#include "Log.h"
  11. $#include "Network.h"
  12. $#include "Network.h"
  13. $#include "LuaScript.h"
  14. $#include "PhysicsWorld.h"
  15. $#include "Renderer.h"
  16. $#include "ResourceCache.h"
  17. $#include "Time.h"
  18. $#include "UI.h"
  19. /// Urho3D execution context. Provides access to subsystems, object factories and attributes, and event receivers.
  20. class Context
  21. {
  22. public:
  23. /// Template version of returning a subsystem.
  24. // template <class T> T* GetSubsystem() const;
  25. Audio* GetSubsystem<Audio> @ GetAudio() const;
  26. Console* GetSubsystem<Console> @ GetConsole() const;
  27. DebugHud* GetSubsystem<DebugHud> @ GetDebugHud() const;
  28. DebugRenderer* GetSubsystem<DebugRenderer> @ GetDebugRenderer() const;
  29. Engine* GetSubsystem<Engine> @ GetEngine() const;
  30. FileSystem* GetSubsystem<FileSystem> @ GetFileSystem() const;
  31. Graphics* GetSubsystem<Graphics> @ GetGraphics() const;
  32. Input* GetSubsystem<Input> @ GetInput() const;
  33. Log* GetSubsystem<Log> @ GetLog() const;
  34. Network* GetSubsystem<Network> @ GetNetwork() const;
  35. PhysicsWorld* GetSubsystem<PhysicsWorld> @ GetPhysicsWorld() const;
  36. Renderer* GetSubsystem<Renderer> @ GetRenderer() const;
  37. ResourceCache* GetSubsystem<ResourceCache> @ GetCache() const;
  38. Time* GetSubsystem<Time> @ GetTime() const;
  39. UI* GetSubsystem<UI> @ GetUI() const;
  40. };
  41. Context* GetContext();
  42. Audio* GetAudio();
  43. Console* GetConsole();
  44. DebugHud* GetDebugHud();
  45. DebugRenderer* GetDebugRenderer();
  46. Engine* GetEngine();
  47. FileSystem* GetFileSystem();
  48. Graphics* GetGraphics();
  49. Input* GetInput();
  50. Log* GetLog();
  51. Network* GetNetwork();
  52. PhysicsWorld* GetPhysicsWorld();
  53. Renderer* GetRenderer();
  54. ResourceCache* GetCache();
  55. Time* GetTime();
  56. UI* GetUI();
  57. ${
  58. static Audio* GetAudio()
  59. {
  60. return GetContext()->GetSubsystem<Audio>();
  61. }
  62. static Console* GetConsole()
  63. {
  64. return GetContext()->GetSubsystem<Console>();
  65. }
  66. static DebugHud* GetDebugHud()
  67. {
  68. return GetContext()->GetSubsystem<DebugHud>();
  69. }
  70. static DebugRenderer* GetDebugRenderer()
  71. {
  72. return GetContext()->GetSubsystem<DebugRenderer>();
  73. }
  74. static Engine* GetEngine()
  75. {
  76. return GetContext()->GetSubsystem<Engine>();
  77. }
  78. static FileSystem* GetFileSystem()
  79. {
  80. return GetContext()->GetSubsystem<FileSystem>();
  81. }
  82. static Graphics* GetGraphics()
  83. {
  84. return GetContext()->GetSubsystem<Graphics>();
  85. }
  86. static Input* GetInput()
  87. {
  88. return GetContext()->GetSubsystem<Input>();
  89. }
  90. static Log* GetLog()
  91. {
  92. return GetContext()->GetSubsystem<Log>();
  93. }
  94. static Network* GetNetwork()
  95. {
  96. return GetContext()->GetSubsystem<Network>();
  97. }
  98. static PhysicsWorld* GetPhysicsWorld()
  99. {
  100. return GetContext()->GetSubsystem<PhysicsWorld>();
  101. }
  102. static Renderer* GetRenderer()
  103. {
  104. return GetContext()->GetSubsystem<Renderer>();
  105. }
  106. static ResourceCache* GetCache()
  107. {
  108. return GetContext()->GetSubsystem<ResourceCache>();
  109. }
  110. static Time* GetTime()
  111. {
  112. return GetContext()->GetSubsystem<Time>();
  113. }
  114. static UI* GetUI()
  115. {
  116. return GetContext()->GetSubsystem<UI>();
  117. }
  118. $}