Extra2D/Extra2D/include/extra2d/render/render_mod.h

42 lines
952 B
C++

#pragma once
#include <extra2d/core/module.h>
#include <extra2d/render/render_svc.h>
#include <extra2d/render/render_types.h>
#include <extra2d/render/shader_mgr.h>
#include <extra2d/render/shader_sdf.h>
#include <extra2d/render/dyn_shader.h>
namespace extra2d {
struct RenderModCfg {
bool vsync = true;
bool shaderHotReload = true;
u32 maxFramesInFlight = 2;
};
class RenderMod : public Module {
public:
RenderMod() = default;
~RenderMod() override = default;
bool init() override { return true; }
void shutdown() override {}
bool ok() const override { return true; }
const char* name() const override { return "RenderMod"; }
void configure(const RenderModCfg& cfg) { cfg_ = cfg; }
const RenderModCfg& config() const { return cfg_; }
void update(f32 dt) {
if (cfg_.shaderHotReload) {
ShaderMgr::get().checkFileChanges();
}
}
private:
RenderModCfg cfg_;
};
}