49 lines
969 B
C++
49 lines
969 B
C++
// Copyright (c) 2025 Dominic Masters
|
|
//
|
|
// This software is released under the MIT License.
|
|
// https://opensource.org/licenses/MIT
|
|
|
|
#pragma once
|
|
#include "time/Time.hpp"
|
|
#include "console/Console.hpp"
|
|
#include "display/Display.hpp"
|
|
#include "input/Input.hpp"
|
|
#include "asset/AssetManager.hpp"
|
|
|
|
namespace Dawn {
|
|
struct Engine {
|
|
private:
|
|
static Engine* instance;
|
|
|
|
bool_t exitRequested = false;
|
|
|
|
public:
|
|
Time time;
|
|
Console console;
|
|
Display display;
|
|
Input input;
|
|
AssetManager assetManager;
|
|
|
|
/**
|
|
* Constructor for the Dawn engine.
|
|
*/
|
|
Engine();
|
|
|
|
/**
|
|
* Check if an exit has been requested.
|
|
*
|
|
* @return True if an exit has been requested, false otherwise.
|
|
*/
|
|
bool_t isExitRequested() const;
|
|
|
|
/**
|
|
* Update the engine state.
|
|
*/
|
|
void update(void);
|
|
|
|
/**
|
|
* Destructor for the Dawn engine.
|
|
*/
|
|
~Engine();
|
|
};
|
|
} |