42 lines
952 B
C++
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_;
|
|
};
|
|
|
|
}
|