37 lines
647 B
C++
37 lines
647 B
C++
#pragma once
|
|
#include <string>
|
|
|
|
class renderer;
|
|
class render_target;
|
|
class texture;
|
|
class application;
|
|
|
|
extern application* g_app_instance;
|
|
|
|
class CORE_API application {
|
|
public:
|
|
application() {
|
|
g_app_instance = this;
|
|
}
|
|
|
|
virtual ~application() = default;
|
|
|
|
application(const application&) = delete;
|
|
|
|
application(application&&) = delete;
|
|
|
|
static application* get() {
|
|
return g_app_instance;
|
|
}
|
|
|
|
virtual void init(const char* runtime_dir);
|
|
|
|
virtual void shutdown();
|
|
|
|
void request_exit();
|
|
|
|
virtual void tick(float delta_time) {}
|
|
protected:
|
|
std::shared_ptr<spdlog::logger> async_spdlog_;
|
|
};
|