51 std::shared_ptr<IWindowSystem> windowSystem,
52 std::shared_ptr<IRenderer> renderer)
64 std::shared_ptr<IWindowSystem> windowSystem,
65 std::shared_ptr<IRenderer> renderer)
82 mWindowSystem = std::make_shared<StandaloneDesktopWindow>(*
this);
High-resolution clock for updating application time.
Provides time tracking for the application runtime.
Provides high-resolution timing for frame updates.
void Reset()
Resets the clock to the current system time.
void UpdateAppTime(AppTime &appTime)
Updates the given AppTime instance with elapsed and total durations.
Manages current, total, and elapsed time for the application.
std::shared_ptr< SceneManager > mSceneManager
CoreApplication()
Constructs a CoreApplication using settings from the config file.
ScreenSettings GetScreenSettings() const override
Retrieves the current screen or window settings.
virtual ~CoreApplication()
std::shared_ptr< IWindowSystem > mWindowSystem
void Draw() override
Executes the rendering logic for the current frame.
void Shutdown() override
Performs cleanup and shuts down the application.
std::shared_ptr< AppTime > mAppTime
void Run() override
Runs the main application loop.
void Update(float deltaTime) override
Updates the application state.
std::shared_ptr< IRenderer > mRenderer
void Initialize() override
Initializes the application and its subsystems.
static AppConfig ReadConfigFile()
Reads application settings from the JSON config file.
Basic application settings loaded from a configuration file.
float screenWidth
Desired window width in pixels (ignored in full-screen mode).
bool isFullScreen
Whether the application should start in full-screen mode.
std::string appName
Name of the application.
float screenHeight
Desired window height in pixels (ignored in full-screen mode).
Describes window and display configuration for the application.
std::string name
The window or application name.
unsigned int width
Screen or window width in pixels.
unsigned int height
Screen or window height in pixels.
bool isFullScreen
Whether the application runs in fullscreen mode.