1
0
Files
BasaltMeter/BasaltPresenter/Shared/basalt/engine.hpp

42 lines
1.1 KiB
C++
Raw Normal View History

2026-01-08 19:23:19 +08:00
#pragma once
#include "guid.hpp"
#include <string>
#include <cinttypes>
namespace basalt::shared::engine {
struct EngineConfig {
bool headless; ///< Whether enable headless mode (No Window created).
std::uint32_t width; ///< Window width.
std::uint32_t height; ///< Window height.
guid::Guid deliver; ///< The GUID of deliver.
};
enum class EngineStatus {
Ready, ///< Engine was allocated but not initialized.
Running, ///< Engine has been initialized and running.
Stop, ///< Engine is shutdown.
};
class IEngine {
public:
IEngine();
virtual ~IEngine();
public:
2026-01-08 19:37:25 +08:00
virtual guid::Guid get_guid() const;
virtual void startup(EngineConfig&& config);
2026-01-08 19:23:19 +08:00
/**
* @brief
* @return True for active exit.
*/
2026-01-08 19:37:25 +08:00
virtual bool tick();
virtual void shutdown();
2026-01-08 19:23:19 +08:00
protected:
EngineConfig config;
EngineStatus status;
};
} // namespace basalt::shared::engine