soport per a pantalles de poca resolució en mode finestra
This commit is contained in:
@@ -74,7 +74,16 @@ bool Engine::initialize(int width, int height, int zoom, bool fullscreen, AppMod
|
||||
|
||||
// VALIDACIÓN 2: Calcular max_zoom y ajustar si es necesario
|
||||
int max_zoom = std::min(screen_w / logical_width, screen_h / logical_height);
|
||||
if (window_zoom > max_zoom) {
|
||||
if (max_zoom < 1) {
|
||||
// Resolució lògica no cap en pantalla ni a zoom=1: escalar-la per fer-la càpida
|
||||
float scale = std::min(static_cast<float>(screen_w) / logical_width,
|
||||
static_cast<float>(screen_h) / logical_height);
|
||||
logical_width = std::max(320, static_cast<int>(logical_width * scale));
|
||||
logical_height = std::max(240, static_cast<int>(logical_height * scale));
|
||||
window_zoom = 1;
|
||||
std::cout << "Advertencia: Resolución no cabe en pantalla. Ajustando a "
|
||||
<< logical_width << "x" << logical_height << "\n";
|
||||
} else if (window_zoom > max_zoom) {
|
||||
std::cout << "Advertencia: Zoom " << window_zoom << " excede máximo " << max_zoom
|
||||
<< " para " << logical_width << "x" << logical_height << ". Ajustando a " << max_zoom << "\n";
|
||||
window_zoom = max_zoom;
|
||||
|
||||
Reference in New Issue
Block a user