32 unsigned int ThreadCount = std::thread::hardware_concurrency() - 1;
62 static inline bool Started =
false;
63 static inline std::string ProjectName;
64 static inline Version ProjectVersion;
66 static inline std::terminate_handler originalHandler =
nullptr;
67 static inline std::vector<const char*> Env = std::vector<const char*>(0);
71 static void Terminate()
noexcept{
90 static bool HasInit =
false;
92 config.
ThreadCount = std::thread::hardware_concurrency() - 1;
113 InitGraphics(config);
115 originalHandler = std::set_terminate(Engine::Terminate);
132 while (window->IsRunning()) {
167 static inline const std::string&
GetProjectName() noexcept {
return ProjectName; };
static void Dispatch(const Event &event)
static void Run()
Yields control to the engine logic. The Engine will run until the program exits.
static Graphics::Window * GetWindow()
static EngineConfig GetPlatformConfig(std::string ProjectName="Default", const Version &ProjectVersion={0, 0, 0, 0}) noexcept
Returns the default platform's (Windows, Linux, etc...) default engine configuration.
static void CreateWindow()
static void GetPluginManager()
Get the Plugin Manager object. [A planned feature].
static const std::string & GetProjectName() noexcept
static void Loop()
The Engine Executes the main loop once, then returns control to user.
static void Init(const EngineConfig &config) noexcept
Initializes the engine (headless) for the first time called. TODO: Make sure this is a headless initi...
static const Version & GetProjectVersion() noexcept
static void CreateWindow()
static void Log(const char *message)
static void Fatal(fmt::format_string< Args... > message, Args &&... args)
static void Close()
Flushes and closes all the files used for logging.
void(* StartupCallback)()
The Hubris Engine main namespace.
Used to configure the engine on instantiation.
unsigned int ThreadCount
Maximum of Thread to be spawned. (default: std::thread::hardware_concurrency() - 1)
Graphics::Viewport WindowDimension
std::string FileRoot
Set to empty string to make the execution folder the root.
std::string ProjectName
The Application/Game Name. Will be set as the Title of the window (used also by vulkan).
RenderAPI GraphicsBackend
StartupCallback StartUpCallback
Screen-space Dimensions. The Depth Values are used by the pipelines.