feat(render): resolució d'offscreen configurable via YAML
Separa el tamany lògic (1280×720) del render target offscreen. Llista
tancada de 5 presets 16:9 (720p/900p/1080p/1440p/2160p) llegida de
rendering.render_{width,height} amb fallback a 1280×720 si invàlida.
Inclou API resizeRenderTarget() preparada per al menú de servei futur.
This commit is contained in:
@@ -204,6 +204,8 @@ namespace ConfigYaml {
|
||||
|
||||
// Rendering
|
||||
rendering.vsync = Defaults::Rendering::VSYNC_DEFAULT;
|
||||
rendering.render_width = Defaults::Rendering::RENDER_WIDTH_DEFAULT;
|
||||
rendering.render_height = Defaults::Rendering::RENDER_HEIGHT_DEFAULT;
|
||||
|
||||
// Version
|
||||
version = std::string(Project::VERSION);
|
||||
@@ -275,6 +277,28 @@ namespace ConfigYaml {
|
||||
rendering.vsync = Defaults::Rendering::VSYNC_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
// Resolució de render: validem el parell (w, h) contra la llista
|
||||
// tancada de presets 16:9. Si falla l'una o l'altra, fem fallback
|
||||
// dels dos camps al default per mantenir un parell vàlid.
|
||||
int candidate_w = rendering.render_width;
|
||||
int candidate_h = rendering.render_height;
|
||||
readField(rend, "render_width", candidate_w, Defaults::Rendering::RENDER_WIDTH_DEFAULT);
|
||||
readField(rend, "render_height", candidate_h, Defaults::Rendering::RENDER_HEIGHT_DEFAULT);
|
||||
if (Defaults::Rendering::isValidRenderResolution(candidate_w, candidate_h)) {
|
||||
rendering.render_width = candidate_w;
|
||||
rendering.render_height = candidate_h;
|
||||
} else {
|
||||
if (console) {
|
||||
std::cerr << "Resolució de render invàlida al YAML ("
|
||||
<< candidate_w << "x" << candidate_h
|
||||
<< "), fallback a "
|
||||
<< Defaults::Rendering::RENDER_WIDTH_DEFAULT << "x"
|
||||
<< Defaults::Rendering::RENDER_HEIGHT_DEFAULT << '\n';
|
||||
}
|
||||
rendering.render_width = Defaults::Rendering::RENDER_WIDTH_DEFAULT;
|
||||
rendering.render_height = Defaults::Rendering::RENDER_HEIGHT_DEFAULT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -501,7 +525,11 @@ namespace ConfigYaml {
|
||||
|
||||
file << "# RENDERITZACIÓ\n";
|
||||
file << "rendering:\n";
|
||||
file << " vsync: " << rendering.vsync << " # 0=disabled, 1=enabled\n\n";
|
||||
file << " vsync: " << rendering.vsync << " # 0=disabled, 1=enabled\n";
|
||||
file << " render_width: " << rendering.render_width
|
||||
<< " # Presets 16:9: 1280, 1600, 1920, 2560, 3840 (fallback 1280)\n";
|
||||
file << " render_height: " << rendering.render_height
|
||||
<< " # Parell amb render_width (720, 900, 1080, 1440, 2160)\n\n";
|
||||
|
||||
// Guardar controls de jugadors
|
||||
savePlayer1ControlsToYaml(file);
|
||||
|
||||
Reference in New Issue
Block a user