presets en yaml

This commit is contained in:
2026-04-17 19:56:43 +02:00
parent 7f703390f9
commit 5889df2a47
13 changed files with 519 additions and 161 deletions

View File

@@ -88,6 +88,38 @@ namespace Options {
std::string config_file;
};
// Preset PostFX
struct PostFXPreset {
std::string name;
float vignette{0.0F};
float scanlines{0.0F};
float chroma{0.0F};
float mask{0.0F};
float gamma{0.0F};
float curvature{0.0F};
float bleeding{0.0F};
float flicker{0.0F};
};
// Preset CrtPi
struct CrtPiPreset {
std::string name;
float scanline_weight{6.0F};
float scanline_gap_brightness{0.12F};
float bloom_factor{3.5F};
float input_gamma{2.4F};
float output_gamma{2.2F};
float mask_brightness{0.80F};
float curvature_x{0.05F};
float curvature_y{0.10F};
int mask_type{2};
bool enable_scanlines{true};
bool enable_multisample{true};
bool enable_gamma{true};
bool enable_curvature{false};
bool enable_sharper{false};
};
// --- Variables globales ---
extern Window window;
extern Video video;
@@ -96,10 +128,26 @@ namespace Options {
extern Settings settings;
extern std::vector<input_t> inputs; // [0]=KEYBOARD, [1]=GAMECONTROLLER per defecte
// Presets de shaders (carregats de postfx.yaml / crtpi.yaml al config folder)
extern std::vector<PostFXPreset> postfx_presets;
extern std::string postfx_file_path;
extern int current_postfx_preset; // Índex dins `postfx_presets`
extern std::vector<CrtPiPreset> crtpi_presets;
extern std::string crtpi_file_path;
extern int current_crtpi_preset; // Índex dins `crtpi_presets`
// --- Funciones ---
void init(); // Reinicia a defaults i omple `inputs`
void setConfigFile(const std::string &file_path); // Ruta del config.yaml
auto loadFromFile() -> bool; // Carrega el YAML; si no existeix, crea'l amb defaults
auto saveToFile() -> bool; // Guarda el YAML
// Presets de shaders. Si el fitxer no existeix, l'escriu amb els defaults
// i deixa els presets carregats en memòria.
void setPostFXFile(const std::string &path);
auto loadPostFXFromFile() -> bool;
void setCrtPiFile(const std::string &path);
auto loadCrtPiFromFile() -> bool;
} // namespace Options