PostFX analític: PostFXParams/Preset amb chroma_min/max + scan_*, elimina supersampling
This commit is contained in:
+21
-18
@@ -91,13 +91,6 @@ namespace Options {
|
||||
parseStringField(gpu, "preferred_driver", video.gpu.preferred_driver);
|
||||
}
|
||||
|
||||
if (vid.contains("supersampling")) {
|
||||
const auto &ss = vid["supersampling"];
|
||||
parseBoolField(ss, "enabled", video.supersampling.enabled);
|
||||
parseBoolField(ss, "linear_upscale", video.supersampling.linear_upscale);
|
||||
parseIntField(ss, "downscale_algo", video.supersampling.downscale_algo);
|
||||
}
|
||||
|
||||
if (vid.contains("shader")) {
|
||||
const auto &sh = vid["shader"];
|
||||
parseBoolField(sh, "enabled", video.shader.enabled);
|
||||
@@ -285,10 +278,6 @@ namespace Options {
|
||||
file << " gpu:\n";
|
||||
file << " acceleration: " << boolToString(video.gpu.acceleration) << "\n";
|
||||
file << " preferred_driver: \"" << video.gpu.preferred_driver << "\"\n";
|
||||
file << " supersampling:\n";
|
||||
file << " enabled: " << boolToString(video.supersampling.enabled) << "\n";
|
||||
file << " linear_upscale: " << boolToString(video.supersampling.linear_upscale) << "\n";
|
||||
file << " downscale_algo: " << video.supersampling.downscale_algo << "\n";
|
||||
file << " shader:\n";
|
||||
file << " enabled: " << boolToString(video.shader.enabled) << "\n";
|
||||
file << " current_shader: "
|
||||
@@ -353,12 +342,12 @@ namespace Options {
|
||||
|
||||
auto defaultPostFXPresets() -> const std::vector<PostFXPreset> & {
|
||||
static const std::vector<PostFXPreset> DEFAULTS = {
|
||||
{.name = "CRT", .vignette = 0.6F, .scanlines = 0.7F, .chroma = 0.15F, .mask = 0.6F, .gamma = 0.8F},
|
||||
{.name = "NTSC", .vignette = 0.4F, .scanlines = 0.5F, .chroma = 0.2F, .mask = 0.4F, .gamma = 0.5F, .curvature = 0.0F, .bleeding = 0.6F},
|
||||
{.name = "CURVED", .vignette = 0.5F, .scanlines = 0.6F, .chroma = 0.1F, .mask = 0.5F, .gamma = 0.7F, .curvature = 0.8F},
|
||||
{.name = "CRT", .vignette = 0.6F, .scanlines = 0.7F, .chroma_min = 0.15F, .chroma_max = 0.15F, .mask = 0.6F, .gamma = 0.8F},
|
||||
{.name = "NTSC", .vignette = 0.4F, .scanlines = 0.5F, .chroma_min = 0.2F, .chroma_max = 0.2F, .mask = 0.4F, .gamma = 0.5F, .curvature = 0.0F, .bleeding = 0.6F},
|
||||
{.name = "CURVED", .vignette = 0.5F, .scanlines = 0.6F, .chroma_min = 0.1F, .chroma_max = 0.1F, .mask = 0.5F, .gamma = 0.7F, .curvature = 0.8F},
|
||||
{.name = "SCANLINES", .vignette = 0.0F, .scanlines = 0.8F},
|
||||
{.name = "SUBTLE", .vignette = 0.3F, .scanlines = 0.4F, .chroma = 0.05F, .mask = 0.0F, .gamma = 0.3F},
|
||||
{.name = "CRT LIVE", .vignette = 0.5F, .scanlines = 0.6F, .chroma = 0.3F, .mask = 0.3F, .gamma = 0.4F, .curvature = 0.3F, .bleeding = 0.4F, .flicker = 0.8F},
|
||||
{.name = "SUBTLE", .vignette = 0.3F, .scanlines = 0.4F, .chroma_min = 0.05F, .chroma_max = 0.05F, .mask = 0.0F, .gamma = 0.3F},
|
||||
{.name = "CRT LIVE", .vignette = 0.5F, .scanlines = 0.6F, .chroma_min = 0.1F, .chroma_max = 0.3F, .mask = 0.3F, .gamma = 0.4F, .curvature = 0.3F, .bleeding = 0.4F, .flicker = 0.8F},
|
||||
};
|
||||
return DEFAULTS;
|
||||
}
|
||||
@@ -380,12 +369,16 @@ namespace Options {
|
||||
out << " - name: \"" << p.name << "\"\n";
|
||||
out << " vignette: " << p.vignette << "\n";
|
||||
out << " scanlines: " << p.scanlines << "\n";
|
||||
out << " chroma: " << p.chroma << "\n";
|
||||
out << " chroma_min: " << p.chroma_min << "\n";
|
||||
out << " chroma_max: " << p.chroma_max << "\n";
|
||||
out << " mask: " << p.mask << "\n";
|
||||
out << " gamma: " << p.gamma << "\n";
|
||||
out << " curvature: " << p.curvature << "\n";
|
||||
out << " bleeding: " << p.bleeding << "\n";
|
||||
out << " flicker: " << p.flicker << "\n";
|
||||
out << " scan_dark_ratio: " << p.scan_dark_ratio << "\n";
|
||||
out << " scan_dark_floor: " << p.scan_dark_floor << "\n";
|
||||
out << " scan_edge_soft: " << p.scan_edge_soft << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -444,12 +437,22 @@ namespace Options {
|
||||
tryGet<std::string>(p, "name", preset.name);
|
||||
parseFloatField(p, "vignette", preset.vignette);
|
||||
parseFloatField(p, "scanlines", preset.scanlines);
|
||||
parseFloatField(p, "chroma", preset.chroma);
|
||||
// Compatibilitat: si només hi ha "chroma", l'usem per a min i max.
|
||||
float legacy_chroma = -1.0F;
|
||||
if (tryGet<float>(p, "chroma", legacy_chroma)) {
|
||||
preset.chroma_min = legacy_chroma;
|
||||
preset.chroma_max = legacy_chroma;
|
||||
}
|
||||
parseFloatField(p, "chroma_min", preset.chroma_min);
|
||||
parseFloatField(p, "chroma_max", preset.chroma_max);
|
||||
parseFloatField(p, "mask", preset.mask);
|
||||
parseFloatField(p, "gamma", preset.gamma);
|
||||
parseFloatField(p, "curvature", preset.curvature);
|
||||
parseFloatField(p, "bleeding", preset.bleeding);
|
||||
parseFloatField(p, "flicker", preset.flicker);
|
||||
parseFloatField(p, "scan_dark_ratio", preset.scan_dark_ratio);
|
||||
parseFloatField(p, "scan_dark_floor", preset.scan_dark_floor);
|
||||
parseFloatField(p, "scan_edge_soft", preset.scan_edge_soft);
|
||||
postfx_presets.push_back(preset);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user