#ifndef ENGINE_H #define ENGINE_H #include class Input; class SparrowRenderer; class Scene; namespace sf { class Clock; class Window; } class btDiscreteDynamicsWorld; class Engine { public: Engine(); ~Engine(); void createWindow(std::string title = "SparrowEngine", unsigned int w = 800, unsigned int h = 600, bool isWindowed = true); void setScene(std::string sceneName); void initPhysics(); void start(); void stop(); Input* getInput() {return m_input;} SparrowRenderer* getRenderer() {return m_renderer;} btDiscreteDynamicsWorld* getPhysics() {return m_world;} unsigned int getTime(); unsigned int getDeltaTime(); private: sf::Clock* m_clock; unsigned int m_timeStamp = 0; unsigned int m_lastTimeStamp = 0; bool m_running; sf::Window* m_window; Input* m_input; Scene* m_scene; btDiscreteDynamicsWorld* m_world; SparrowRenderer* m_renderer; void update(); }; #endif