#pragma once #include #include #include "extern.h" #include "spdlog/logger.h" class renderer; class render_target; class texture; class application; class CORE_API application { public: application() = default; virtual ~application() = default; application(const application&) = delete; application(application&&) = delete; virtual void init(const char* runtime_dir); virtual void shutdown(); void request_exit(); virtual void tick(float delta_time) {} protected: std::shared_ptr async_spdlog_; };