From cf4f0459b3ac15f5e12a3f068dc8610b9bb9562a Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 23 Dec 2024 11:13:14 +0100 Subject: [PATCH] Es pot fer la finestra tan gran com deixe la pantalla, es a dir, el factor de zoom ja no va de 1 a 4 sino de 1 a X --- source/director.cpp | 4 ++++ source/options.h | 3 ++- source/screen.cpp | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/source/director.cpp b/source/director.cpp index da0c473..887e6bc 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -296,11 +296,15 @@ bool Director::initSDL() } */ + // Muestra información sobre el tamañi de la pantalla y de la ventana de juego SDL_DisplayMode DM; SDL_GetCurrentDisplayMode(0, &DM); std::cout << "\nCurrent display mode: " << DM.w << "x" << DM.h << " @ " << DM.refresh_rate << "Hz" << std::endl; std::cout << "Window resolution : " << param.game.width << "x" << param.game.height << " x" << options.video.window.size << std::endl; + // Calcula el máximo factor de zoom que se puede aplicar a la pantalla + options.video.window.max_size = std::min(DM.w / param.game.width, DM.h / param.game.height); + // Establece el filtro de la textura if (!SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, std::to_string(static_cast(options.video.filter)).c_str())) { diff --git a/source/options.h b/source/options.h index 5777524..fb6ad7e 100644 --- a/source/options.h +++ b/source/options.h @@ -23,7 +23,8 @@ enum class GameDifficulty // Estructura para las opciones de la ventana struct OptionsWindow { - int size; // Contiene el valor por el que se multiplica el tamaño de la ventana + int size = 1; // Contiene el valor por el que se multiplica el tamaño de la ventana + int max_size = 1; // Tamaño máximo para que el tamaño de la ventana no sea mayor que el tamaño de la pantalla }; // Estructura con opciones para el video diff --git a/source/screen.cpp b/source/screen.cpp index ceff9e6..e55fb3f 100644 --- a/source/screen.cpp +++ b/source/screen.cpp @@ -235,7 +235,7 @@ void Screen::decWindowSize() void Screen::incWindowSize() { ++options.video.window.size; - options.video.window.size = std::min(options.video.window.size, 4); + options.video.window.size = std::min(options.video.window.size, options.video.window.max_size); setVideoMode(ScreenVideoMode::WINDOW); }