65 virtual void Initialize();
73 virtual void Update(
float deltaTime);
86 virtual void Shutdown();
98 void LoadScene(std::string newSceneName);
104 std::shared_ptr<Camera> GetActiveCamera3D();
110 std::shared_ptr<Camera2D> GetActiveCamera2D();
124 template <
typename T,
typename V>
146 template <
typename T>
168 template <
typename T>
180 void DestroyDrawable3D(
Drawable3D* drawable3D);
189 void DestroyDrawable2D(
Drawable2D* drawable2D);
204 void DestroyActor(
Actor* actor);
216 void DestroyActor(
Actor2D * actor2D);
222 void SetBackgroundColor(glm::vec3 color);
238 void FlushDestroyed();
243 std::shared_ptr<Camera> mActiveCamera3D;
244 std::shared_ptr<Camera2D> mActiveCamera2D;
246 std::vector<Drawable3D*> mDrawables3D;
247 std::vector<Drawable2D*> mDrawables2D;
249 std::vector<Drawable3D*> mPendingDestroy3D;
250 std::vector<Drawable2D*> mPendingDestroy2D;
252 std::vector<Actor*> mActors;
253 std::vector<Actor*> mPendingDestroyActors;
255 std::vector<Actor2D*> mActors2D;
256 std::vector<Actor2D*> mPendingDestroyActors2D;