Major refactoring: State, mouse and more...

This commit is contained in:
Sebastian
2024-11-14 00:55:09 +01:00
parent 300001d385
commit 5d3b72d4ef
15 changed files with 243 additions and 207 deletions
+38
View File
@@ -0,0 +1,38 @@
#pragma once
#include "vmath.h"
#include <memory>
namespace VISEQ::APP{
struct AppSettings{
int mode = 0;
int width;
int height;
float grid;
float bpm;
float fps;
float speed = 16.0f;
int gui_selected_midi_out;
};
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(AppSettings, mode, width, height, grid, bpm, fps, speed, gui_selected_midi_out)
class State{
public:
State(){}
State(State &state) = delete;
void operator=(const State &) = delete;
AppSettings settings;
Vec2Df raw_mouse;
Vec2Df mod_mouse;
inline static std::shared_ptr<State> instance;
static std::shared_ptr<State> get() {
if(!instance){
instance.reset(new State());
}
return instance;
}
};
}