From f00b08b6be3540c9e6d714db6eb7a056d80e09cc Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Thu, 9 Oct 2025 20:18:01 +0200 Subject: [PATCH] =?UTF-8?q?Migraci=C3=B3n=20de=20dbgtxt=20a=20SDL=5FTTF=20?= =?UTF-8?q?+=20conversi=C3=B3n=20de=20textos=20a=20mixed=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sistema de texto: - Reemplazado dbgtxt.cpp (bitmap 8x8) por TextRenderer (SDL_TTF) - Creado source/text/ con TextRenderer class - Añadidas fuentes TrueType en data/fonts/ - Implementados dos TextRenderer (display + debug) con escalado dinámico - Constantes configurables: TEXT_FONT_PATH, TEXT_BASE_SIZE, TEXT_ANTIALIASING Correcciones de centrado: - Reemplazado text.length() * 8 por text_renderer_.getTextWidth() en ~25 lugares - Texto de tecla F ahora se centra correctamente - Texto de modo (Demo/Logo/Lite) fijo en tercera fila del HUD debug - Implementado espaciado dinámico con getTextHeight() Conversión a mixed case: - ~26 textos de display cambiados de ALL CAPS a mixed case - 15 nombres de temas en theme_manager.cpp convertidos a mixed case - Ejemplos: "FPS" → "fps", "MODO FISICA" → "Modo Física", "DEMO MODE ON" → "Modo Demo: On" - Temas: "SUNSET" → "Sunset", "OCEANO" → "Océano", etc. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- CMakeLists.txt | 20 ++- data/fonts/BBHSansHegarty-Regular.ttf | Bin 0 -> 28840 bytes data/fonts/FunnelSans-Regular.ttf | Bin 0 -> 34124 bytes data/fonts/JetBrainsMono-Regular.ttf | Bin 0 -> 114904 bytes data/fonts/Minecraftia-Regular.ttf | Bin 0 -> 70324 bytes data/fonts/PixelOperator.ttf | Bin 0 -> 17272 bytes data/fonts/determination.ttf | Bin 0 -> 150948 bytes data/fonts/dogica.ttf | Bin 0 -> 33860 bytes data/fonts/rainyhearts.ttf | Bin 0 -> 48784 bytes source/engine.cpp | 194 +++++++++++++++----------- source/engine.h | 58 ++++---- source/text/textrenderer.cpp | 112 +++++++++++++++ source/text/textrenderer.h | 36 +++++ source/theme_manager.cpp | 56 ++++---- 14 files changed, 338 insertions(+), 138 deletions(-) create mode 100644 data/fonts/BBHSansHegarty-Regular.ttf create mode 100644 data/fonts/FunnelSans-Regular.ttf create mode 100644 data/fonts/JetBrainsMono-Regular.ttf create mode 100644 data/fonts/Minecraftia-Regular.ttf create mode 100644 data/fonts/PixelOperator.ttf create mode 100644 data/fonts/determination.ttf create mode 100644 data/fonts/dogica.ttf create mode 100644 data/fonts/rainyhearts.ttf create mode 100644 source/text/textrenderer.cpp create mode 100644 source/text/textrenderer.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b501497..a584faa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,16 @@ if (NOT SDL3_FOUND) message(FATAL_ERROR "SDL3 no encontrado. Por favor, verifica su instalación.") endif() +# Buscar SDL3_ttf +find_package(SDL3_ttf REQUIRED) + +# Si no se encuentra SDL3_ttf, generar un error +if (NOT SDL3_ttf_FOUND) + message(FATAL_ERROR "SDL3_ttf no encontrado. Por favor, verifica su instalación.") +endif() + # Archivos fuente (excluir main_old.cpp) -file(GLOB SOURCE_FILES source/*.cpp source/external/*.cpp source/shapes/*.cpp source/themes/*.cpp) +file(GLOB SOURCE_FILES source/*.cpp source/external/*.cpp source/shapes/*.cpp source/themes/*.cpp source/text/*.cpp) list(REMOVE_ITEM SOURCE_FILES "${CMAKE_SOURCE_DIR}/source/main_old.cpp") # Comprobar si se encontraron archivos fuente @@ -28,17 +36,17 @@ endif() # Detectar la plataforma y configuraciones específicas if(WIN32) set(PLATFORM windows) - set(LINK_LIBS ${SDL3_LIBRARIES} mingw32 ws2_32) + set(LINK_LIBS SDL3::SDL3 SDL3_ttf::SDL3_ttf mingw32 ws2_32) elseif(UNIX AND NOT APPLE) set(PLATFORM linux) - set(LINK_LIBS ${SDL3_LIBRARIES}) + set(LINK_LIBS SDL3::SDL3 SDL3_ttf::SDL3_ttf) elseif(APPLE) set(PLATFORM macos) - set(LINK_LIBS ${SDL3_LIBRARIES}) + set(LINK_LIBS SDL3::SDL3 SDL3_ttf::SDL3_ttf) endif() -# Incluir directorios de SDL3 -include_directories(${SDL3_INCLUDE_DIRS}) +# Incluir directorios de SDL3 y SDL3_ttf +include_directories(${SDL3_INCLUDE_DIRS} ${SDL3_ttf_INCLUDE_DIRS}) # Añadir el ejecutable reutilizando el nombre del proyecto add_executable(${PROJECT_NAME} ${SOURCE_FILES}) diff --git a/data/fonts/BBHSansHegarty-Regular.ttf b/data/fonts/BBHSansHegarty-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f834b91ddb622c80ab2a087cf3c3a0108677d23d GIT binary patch literal 28840 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 I=HL4N0W8z>F8}}l literal 0 HcmV?d00001 diff --git a/data/fonts/FunnelSans-Regular.ttf b/data/fonts/FunnelSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3e497ba5fba956b9baa71341c100a843c8f32b2a GIT binary patch literal 34124 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 literal 0 HcmV?d00001 diff --git a/data/fonts/JetBrainsMono-Regular.ttf b/data/fonts/JetBrainsMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..436c982ff3209357305892181e61565d1e01d439 GIT binary patch literal 114904 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 aV?G>`5QswYyYuzw_`-R@-wqEc%Krr6ZWs;# literal 0 HcmV?d00001 diff --git a/data/fonts/Minecraftia-Regular.ttf b/data/fonts/Minecraftia-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7247ad785ac2f969f0019d1ac5253d70b6052fbc GIT binary patch literal 70324 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 L5%VJEMYQjK#!N~U literal 0 HcmV?d00001 diff --git a/data/fonts/PixelOperator.ttf b/data/fonts/PixelOperator.ttf new file mode 100644 index 0000000000000000000000000000000000000000..34fe947b8d4e7efa8e57798512ff15b232a763de GIT binary patch literal 17272 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 literal 0 HcmV?d00001 diff --git a/data/fonts/determination.ttf b/data/fonts/determination.ttf new file mode 100644 index 0000000000000000000000000000000000000000..69e732bba7bd845586f1859239f0390692dd93aa GIT binary patch literal 150948 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 literal 0 HcmV?d00001 diff --git a/source/engine.cpp b/source/engine.cpp index 6713b40..31cac64 100644 --- a/source/engine.cpp +++ b/source/engine.cpp @@ -22,7 +22,6 @@ #endif #include "ball.h" // for Ball -#include "external/dbgtxt.h" // for dbg_init, dbg_print #include "external/mouse.h" // for Mouse namespace #include "external/texture.h" // for Texture #include "shapes/atom_shape.h" // for AtomShape @@ -203,7 +202,22 @@ bool Engine::initialize(int width, int height, int zoom, bool fullscreen) { current_ball_size_ = texture_->getWidth(); // Obtener tamaño dinámicamente srand(static_cast(time(nullptr))); - dbg_init(renderer_); + + // Calcular tamaño de fuente escalado según resolución + // Usa las constantes configurables de la clase + int font_size = (base_screen_height_ * TEXT_BASE_SIZE) / 240; + + // Inicializar TextRenderer para display (texto centrado) + if (!text_renderer_.init(renderer_, TEXT_FONT_PATH, font_size, TEXT_ANTIALIASING)) { + SDL_Log("Error al inicializar TextRenderer (display)"); + return false; + } + + // Inicializar TextRenderer para debug (HUD) + if (!text_renderer_debug_.init(renderer_, TEXT_FONT_PATH, font_size, TEXT_ANTIALIASING)) { + SDL_Log("Error al inicializar TextRenderer (debug)"); + return false; + } // Inicializar ThemeManager theme_manager_ = std::make_unique(); @@ -270,7 +284,7 @@ void Engine::update() { fps_current_ = fps_frame_count_; fps_frame_count_ = 0; fps_last_time_ = current_time; - fps_text_ = "FPS: " + std::to_string(fps_current_); + fps_text_ = "fps: " + std::to_string(fps_current_); } // Bifurcar actualización según modo activo @@ -435,7 +449,7 @@ void Engine::handleEvents() { // Mostrar nombre del tema (solo si NO estamos en modo demo) if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -450,7 +464,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(theme_index); if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -464,7 +478,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(theme_index); if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -478,7 +492,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(theme_index); if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -492,7 +506,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(theme_index); if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -506,7 +520,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(theme_index); if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -519,7 +533,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(5); // MONOCHROME if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -532,7 +546,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(6); // LAVENDER if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -545,7 +559,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(7); // CRIMSON if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -558,7 +572,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(8); // EMERALD if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -571,7 +585,7 @@ void Engine::handleEvents() { theme_manager_->switchToTheme(9); // SUNRISE if (current_app_mode_ == AppMode::MANUAL) { text_ = theme_manager_->getCurrentThemeNameES(); - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -585,8 +599,8 @@ void Engine::handleEvents() { // Mostrar feedback visual (solo si NO estamos en modo demo) if (current_app_mode_ == AppMode::MANUAL) { - text_ = (theme_page_ == 0) ? "PAGINA 1" : "PAGINA 2"; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_ = (theme_page_ == 0) ? "Página 1" : "Página 2"; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -602,7 +616,7 @@ void Engine::handleEvents() { if (current_mode_ == SimulationMode::SHAPE) { shape_scale_factor_ += SHAPE_SCALE_STEP; clampShapeScale(); - text_ = "SCALE " + std::to_string(static_cast(shape_scale_factor_ * 100.0f + 0.5f)) + "%"; + text_ = "Escala " + std::to_string(static_cast(shape_scale_factor_ * 100.0f + 0.5f)) + "%"; int text_width = static_cast(text_.length() * 8); text_pos_ = (current_screen_width_ - text_width) / 2; text_init_time_ = SDL_GetTicks(); @@ -614,7 +628,7 @@ void Engine::handleEvents() { if (current_mode_ == SimulationMode::SHAPE) { shape_scale_factor_ -= SHAPE_SCALE_STEP; clampShapeScale(); - text_ = "SCALE " + std::to_string(static_cast(shape_scale_factor_ * 100.0f + 0.5f)) + "%"; + text_ = "Escala " + std::to_string(static_cast(shape_scale_factor_ * 100.0f + 0.5f)) + "%"; int text_width = static_cast(text_.length() * 8); text_pos_ = (current_screen_width_ - text_width) / 2; text_init_time_ = SDL_GetTicks(); @@ -625,7 +639,7 @@ void Engine::handleEvents() { case SDLK_KP_MULTIPLY: if (current_mode_ == SimulationMode::SHAPE) { shape_scale_factor_ = SHAPE_SCALE_DEFAULT; - text_ = "SCALE RESET (100%)"; + text_ = "Escala reiniciada (100%)"; int text_width = static_cast(text_.length() * 8); text_pos_ = (current_screen_width_ - text_width) / 2; text_init_time_ = SDL_GetTicks(); @@ -636,7 +650,7 @@ void Engine::handleEvents() { case SDLK_KP_DIVIDE: if (current_mode_ == SimulationMode::SHAPE) { depth_zoom_enabled_ = !depth_zoom_enabled_; - text_ = depth_zoom_enabled_ ? "DEPTH ZOOM ON" : "DEPTH ZOOM OFF"; + text_ = depth_zoom_enabled_ ? "Zoom profundidad: On" : "Zoom profundidad: Off"; int text_width = static_cast(text_.length() * 8); text_pos_ = (current_screen_width_ - text_width) / 2; text_init_time_ = SDL_GetTicks(); @@ -722,16 +736,16 @@ void Engine::handleEvents() { if (current_app_mode_ == AppMode::DEMO) { // Desactivar DEMO → MANUAL setState(AppMode::MANUAL); - text_ = "DEMO MODE OFF"; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_ = "Modo Demo: Off"; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } else { // Activar DEMO (desde cualquier otro modo) setState(AppMode::DEMO); randomizeOnDemoStart(false); - text_ = "DEMO MODE ON"; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_ = "Modo Demo: On"; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -743,16 +757,16 @@ void Engine::handleEvents() { if (current_app_mode_ == AppMode::DEMO_LITE) { // Desactivar DEMO_LITE → MANUAL setState(AppMode::MANUAL); - text_ = "DEMO LITE OFF"; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_ = "Modo Demo Lite: Off"; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } else { // Activar DEMO_LITE (desde cualquier otro modo) setState(AppMode::DEMO_LITE); randomizeOnDemoStart(true); - text_ = "DEMO LITE ON"; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_ = "Modo Demo Lite: On"; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -763,11 +777,11 @@ void Engine::handleEvents() { toggleLogoMode(); // Mostrar texto informativo if (current_app_mode_ == AppMode::LOGO) { - text_ = "LOGO MODE ON"; + text_ = "Modo Logo: On"; } else { - text_ = "LOGO MODE OFF"; + text_ = "Modo Logo: Off"; } - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); break; @@ -875,91 +889,115 @@ void Engine::render() { theme_manager_->getCurrentThemeTextColor(text_color_r, text_color_g, text_color_b); const char* theme_name_es = theme_manager_->getCurrentThemeNameES(); + // Calcular espaciado dinámico + int line_height = text_renderer_.getTextHeight(); + int margin = 8; + // Texto del número de pelotas con color del tema - dbg_print(text_pos_, 8, text_.c_str(), text_color_r, text_color_g, text_color_b); + text_renderer_.print(text_pos_, margin, text_.c_str(), text_color_r, text_color_g, text_color_b); // Mostrar nombre del tema en castellano debajo del número de pelotas // (solo si text_ NO es ya el nombre del tema, para evitar duplicación) if (theme_name_es != nullptr && text_ != theme_name_es) { - int theme_text_width = static_cast(strlen(theme_name_es) * 8); // 8 píxeles por carácter - int theme_x = (current_screen_width_ - theme_text_width) / 2; // Centrar horizontalmente + int theme_text_width = text_renderer_.getTextWidth(theme_name_es); + int theme_x = (current_screen_width_ - theme_text_width) / 2; // Centrar horizontalmente + int theme_y = margin + line_height; // Espaciado dinámico // Texto del nombre del tema con el mismo color - dbg_print(theme_x, 24, theme_name_es, text_color_r, text_color_g, text_color_b); + text_renderer_.print(theme_x, theme_y, theme_name_es, text_color_r, text_color_g, text_color_b); } } // Debug display (solo si está activado con tecla H) if (show_debug_) { + // Obtener altura de línea para espaciado dinámico (usando fuente debug) + int line_height = text_renderer_debug_.getTextHeight(); + int margin = 8; // Margen constante + int current_y = margin; // Y inicial + // Mostrar contador de FPS en esquina superior derecha - int fps_text_width = static_cast(fps_text_.length() * 8); // 8 píxeles por carácter - int fps_x = current_screen_width_ - fps_text_width - 8; // 8 píxeles de margen - dbg_print(fps_x, 8, fps_text_.c_str(), 255, 255, 0); // Amarillo para distinguir + int fps_text_width = text_renderer_debug_.getTextWidth(fps_text_.c_str()); + int fps_x = current_screen_width_ - fps_text_width - margin; + text_renderer_debug_.print(fps_x, current_y, fps_text_.c_str(), 255, 255, 0); // Amarillo // Mostrar estado V-Sync en esquina superior izquierda - dbg_print(8, 8, vsync_text_.c_str(), 0, 255, 255); // Cian para distinguir + text_renderer_debug_.print(margin, current_y, vsync_text_.c_str(), 0, 255, 255); // Cian + current_y += line_height; // Debug: Mostrar valores de la primera pelota (si existe) if (!balls_.empty()) { - // Línea 1: Gravedad (solo números enteros) + // Línea 1: Gravedad int grav_int = static_cast(balls_[0]->getGravityForce()); - std::string grav_text = "GRAV " + std::to_string(grav_int); - dbg_print(8, 24, grav_text.c_str(), 255, 0, 255); // Magenta para debug + std::string grav_text = "Gravedad: " + std::to_string(grav_int); + text_renderer_debug_.print(margin, current_y, grav_text.c_str(), 255, 0, 255); // Magenta + current_y += line_height; - // Línea 2: Velocidad Y (solo números enteros) + // Línea 2: Velocidad Y int vy_int = static_cast(balls_[0]->getVelocityY()); - std::string vy_text = "VY " + std::to_string(vy_int); - dbg_print(8, 32, vy_text.c_str(), 255, 0, 255); // Magenta para debug + std::string vy_text = "Velocidad Y: " + std::to_string(vy_int); + text_renderer_debug_.print(margin, current_y, vy_text.c_str(), 255, 0, 255); // Magenta + current_y += line_height; // Línea 3: Estado superficie - std::string surface_text = balls_[0]->isOnSurface() ? "SURFACE YES" : "SURFACE NO"; - dbg_print(8, 40, surface_text.c_str(), 255, 0, 255); // Magenta para debug + std::string surface_text = balls_[0]->isOnSurface() ? "Superficie: Sí" : "Superficie: No"; + text_renderer_debug_.print(margin, current_y, surface_text.c_str(), 255, 0, 255); // Magenta + current_y += line_height; // Línea 4: Coeficiente de rebote (loss) float loss_val = balls_[0]->getLossCoefficient(); - std::string loss_text = "LOSS " + std::to_string(loss_val).substr(0, 4); // Solo 2 decimales - dbg_print(8, 48, loss_text.c_str(), 255, 0, 255); // Magenta para debug + std::string loss_text = "Rebote: " + std::to_string(loss_val).substr(0, 4); + text_renderer_debug_.print(margin, current_y, loss_text.c_str(), 255, 0, 255); // Magenta + current_y += line_height; // Línea 5: Dirección de gravedad - std::string gravity_dir_text = "GRAVITY " + gravityDirectionToString(current_gravity_); - dbg_print(8, 56, gravity_dir_text.c_str(), 255, 255, 0); // Amarillo para dirección + std::string gravity_dir_text = "Dirección: " + gravityDirectionToString(current_gravity_); + text_renderer_debug_.print(margin, current_y, gravity_dir_text.c_str(), 255, 255, 0); // Amarillo + current_y += line_height; } // Debug: Mostrar tema actual (delegado a ThemeManager) - std::string theme_text = std::string("THEME ") + theme_manager_->getCurrentThemeNameEN(); - dbg_print(8, 64, theme_text.c_str(), 255, 255, 128); // Amarillo claro para tema + std::string theme_text = std::string("Tema: ") + theme_manager_->getCurrentThemeNameEN(); + text_renderer_debug_.print(margin, current_y, theme_text.c_str(), 255, 255, 128); // Amarillo claro + current_y += line_height; // Debug: Mostrar modo de simulación actual std::string mode_text; if (current_mode_ == SimulationMode::PHYSICS) { - mode_text = "MODE PHYSICS"; + mode_text = "Modo: Física"; } else if (active_shape_) { - mode_text = std::string("MODE ") + active_shape_->getName(); + mode_text = std::string("Modo: ") + active_shape_->getName(); } else { - mode_text = "MODE SHAPE"; + mode_text = "Modo: Forma"; } - dbg_print(8, 72, mode_text.c_str(), 0, 255, 128); // Verde claro para modo + text_renderer_debug_.print(margin, current_y, mode_text.c_str(), 0, 255, 128); // Verde claro + current_y += line_height; // Debug: Mostrar convergencia en modo LOGO (solo cuando está activo) if (current_app_mode_ == AppMode::LOGO && current_mode_ == SimulationMode::SHAPE) { int convergence_percent = static_cast(shape_convergence_ * 100.0f); - std::string convergence_text = "CONV " + std::to_string(convergence_percent); - dbg_print(8, 80, convergence_text.c_str(), 255, 128, 0); // Naranja para convergencia + std::string convergence_text = "Convergencia: " + std::to_string(convergence_percent) + "%"; + text_renderer_debug_.print(margin, current_y, convergence_text.c_str(), 255, 128, 0); // Naranja + current_y += line_height; } // Debug: Mostrar modo DEMO/LOGO activo (siempre visible cuando debug está ON) + // FIJO en tercera fila (no se mueve con otros elementos del HUD) + int fixed_y = margin + (line_height * 2); // Tercera fila fija if (current_app_mode_ == AppMode::LOGO) { - int logo_text_width = 9 * 8; // "LOGO MODE" = 9 caracteres × 8 píxeles + const char* logo_text = "Modo Logo"; + int logo_text_width = text_renderer_debug_.getTextWidth(logo_text); int logo_x = (current_screen_width_ - logo_text_width) / 2; - dbg_print(logo_x, 80, "LOGO MODE", 255, 128, 0); // Naranja para Logo Mode + text_renderer_debug_.print(logo_x, fixed_y, logo_text, 255, 128, 0); // Naranja } else if (current_app_mode_ == AppMode::DEMO) { - int demo_text_width = 9 * 8; // "DEMO MODE" = 9 caracteres × 8 píxeles + const char* demo_text = "Modo Demo"; + int demo_text_width = text_renderer_debug_.getTextWidth(demo_text); int demo_x = (current_screen_width_ - demo_text_width) / 2; - dbg_print(demo_x, 80, "DEMO MODE", 255, 165, 0); // Naranja para DEMO + text_renderer_debug_.print(demo_x, fixed_y, demo_text, 255, 165, 0); // Naranja } else if (current_app_mode_ == AppMode::DEMO_LITE) { - int lite_text_width = 14 * 8; // "DEMO LITE MODE" = 14 caracteres × 8 píxeles + const char* lite_text = "Modo Demo Lite"; + int lite_text_width = text_renderer_debug_.getTextWidth(lite_text); int lite_x = (current_screen_width_ - lite_text_width) / 2; - dbg_print(lite_x, 80, "DEMO LITE MODE", 255, 200, 0); // Amarillo-naranja para DEMO LITE + text_renderer_debug_.print(lite_x, fixed_y, lite_text, 255, 200, 0); // Amarillo-naranja } } @@ -1006,11 +1044,11 @@ void Engine::setText() { int num_balls = BALL_COUNT_SCENARIOS[scenario_]; if (num_balls == 1) { - text_ = "1 PELOTA"; + text_ = "1 pelota"; } else { - text_ = std::to_string(num_balls) + " PELOTAS"; + text_ = std::to_string(num_balls) + " pelotas"; } - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; // Centrar texto + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; // Centrar texto show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -1093,7 +1131,7 @@ void Engine::changeGravityDirection(GravityDirection direction) { void Engine::toggleVSync() { vsync_enabled_ = !vsync_enabled_; - vsync_text_ = vsync_enabled_ ? "VSYNC ON" : "VSYNC OFF"; + vsync_text_ = vsync_enabled_ ? "V-Sync: On" : "V-Sync: Off"; // Aplicar el cambio de V-Sync al renderizador SDL_SetRenderVSync(renderer_, vsync_enabled_ ? 1 : 0); @@ -1199,9 +1237,9 @@ void Engine::toggleIntegerScaling() { SDL_SetRenderLogicalPresentation(renderer_, current_screen_width_, current_screen_height_, presentation); // Mostrar texto informativo - text_ = "SCALING: "; + text_ = "Escalado: "; text_ += mode_name; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -2021,8 +2059,8 @@ void Engine::switchTexture() { std::string texture_name = texture_names_[current_texture_index_]; std::transform(texture_name.begin(), texture_name.end(), texture_name.begin(), ::toupper); - text_ = "SPRITE: " + texture_name; - text_pos_ = (current_screen_width_ - static_cast(text_.length() * 8)) / 2; + text_ = "Sprite: " + texture_name; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; show_text_ = true; text_init_time_ = SDL_GetTicks(); } @@ -2067,9 +2105,8 @@ void Engine::toggleShapeMode(bool force_gravity_on_exit) { // Mostrar texto informativo (solo si NO estamos en modo demo o logo) if (current_app_mode_ == AppMode::MANUAL) { - text_ = "MODO FISICA"; - int text_width = static_cast(text_.length() * 8); - text_pos_ = (current_screen_width_ - text_width) / 2; + text_ = "Modo Física"; + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; text_init_time_ = SDL_GetTicks(); show_text_ = true; } @@ -2132,9 +2169,8 @@ void Engine::activateShape(ShapeType type) { // Mostrar texto informativo con nombre de figura (solo si NO estamos en modo demo o logo) if (active_shape_ && current_app_mode_ == AppMode::MANUAL) { - text_ = std::string("MODO ") + active_shape_->getName(); - int text_width = static_cast(text_.length() * 8); - text_pos_ = (current_screen_width_ - text_width) / 2; + text_ = std::string("Modo ") + active_shape_->getName(); + text_pos_ = (current_screen_width_ - text_renderer_.getTextWidth(text_.c_str())) / 2; text_init_time_ = SDL_GetTicks(); show_text_ = true; } diff --git a/source/engine.h b/source/engine.h index 831378b..6570aec 100644 --- a/source/engine.h +++ b/source/engine.h @@ -10,18 +10,19 @@ #include // for string #include // for vector -#include "ball.h" // for Ball -#include "defines.h" // for GravityDirection, ColorTheme, ShapeType -#include "external/texture.h" // for Texture -#include "shapes/shape.h" // for Shape (interfaz polimórfica) -#include "theme_manager.h" // for ThemeManager +#include "ball.h" // for Ball +#include "defines.h" // for GravityDirection, ColorTheme, ShapeType +#include "external/texture.h" // for Texture +#include "shapes/shape.h" // for Shape (interfaz polimórfica) +#include "text/textrenderer.h" // for TextRenderer +#include "theme_manager.h" // for ThemeManager // Modos de aplicación mutuamente excluyentes enum class AppMode { - MANUAL, // Control manual del usuario - DEMO, // Modo demo completo (auto-play) - DEMO_LITE, // Modo demo lite (solo física/figuras) - LOGO // Modo logo (easter egg) + MANUAL, // Control manual del usuario + DEMO, // Modo demo completo (auto-play) + DEMO_LITE, // Modo demo lite (solo física/figuras) + LOGO // Modo logo (easter egg) }; class Engine { @@ -54,6 +55,8 @@ class Engine { // UI y debug bool show_debug_ = false; bool show_text_ = true; + TextRenderer text_renderer_; // Sistema de renderizado de texto para display (centrado) + TextRenderer text_renderer_debug_; // Sistema de renderizado de texto para debug (HUD) // Sistema de zoom dinámico int current_window_zoom_ = DEFAULT_WINDOW_ZOOM; @@ -93,22 +96,22 @@ class Engine { bool depth_zoom_enabled_ = true; // Zoom por profundidad Z activado // Sistema de Modo DEMO (auto-play) - AppMode current_app_mode_ = AppMode::MANUAL; // Modo actual (mutuamente excluyente) - AppMode previous_app_mode_ = AppMode::MANUAL; // Modo previo antes de entrar a LOGO - float demo_timer_ = 0.0f; // Contador de tiempo para próxima acción - float demo_next_action_time_ = 0.0f; // Tiempo aleatorio hasta próxima acción (segundos) + AppMode current_app_mode_ = AppMode::MANUAL; // Modo actual (mutuamente excluyente) + AppMode previous_app_mode_ = AppMode::MANUAL; // Modo previo antes de entrar a LOGO + float demo_timer_ = 0.0f; // Contador de tiempo para próxima acción + float demo_next_action_time_ = 0.0f; // Tiempo aleatorio hasta próxima acción (segundos) // Sistema de convergencia para LOGO MODE (escala con resolución) - float shape_convergence_ = 0.0f; // % de pelotas cerca del objetivo (0.0-1.0) - float logo_convergence_threshold_ = 0.90f; // Threshold aleatorio (75-100%) - float logo_min_time_ = 3.0f; // Tiempo mínimo escalado con resolución - float logo_max_time_ = 5.0f; // Tiempo máximo escalado (backup) + float shape_convergence_ = 0.0f; // % de pelotas cerca del objetivo (0.0-1.0) + float logo_convergence_threshold_ = 0.90f; // Threshold aleatorio (75-100%) + float logo_min_time_ = 3.0f; // Tiempo mínimo escalado con resolución + float logo_max_time_ = 5.0f; // Tiempo máximo escalado (backup) // Sistema de espera de flips en LOGO MODE (camino alternativo) - bool logo_waiting_for_flip_ = false; // true si eligió el camino "esperar flip" - int logo_target_flip_number_ = 0; // En qué flip actuar (1, 2 o 3) - float logo_target_flip_percentage_ = 0.0f; // % de flip a esperar (0.2-0.8) - int logo_current_flip_count_ = 0; // Flips observados hasta ahora + bool logo_waiting_for_flip_ = false; // true si eligió el camino "esperar flip" + int logo_target_flip_number_ = 0; // En qué flip actuar (1, 2 o 3) + float logo_target_flip_percentage_ = 0.0f; // % de flip a esperar (0.2-0.8) + int logo_current_flip_count_ = 0; // Flips observados hasta ahora // Estado previo antes de entrar a Logo Mode (para restaurar al salir) int logo_previous_theme_ = 0; // Índice de tema (0-9) @@ -119,6 +122,11 @@ class Engine { std::vector batch_vertices_; std::vector batch_indices_; + // Configuración del sistema de texto (constantes configurables) + static constexpr const char* TEXT_FONT_PATH = "data/fonts/determination.ttf"; + static constexpr int TEXT_BASE_SIZE = 8; // Tamaño base para 240p + static constexpr bool TEXT_ANTIALIASING = true; // true = suavizado, false = píxeles nítidos + // Métodos principales del loop void calculateDeltaTime(); void update(); @@ -141,7 +149,7 @@ class Engine { std::string gravityDirectionToString(GravityDirection direction) const; // Sistema de gestión de estados (MANUAL/DEMO/DEMO_LITE/LOGO) - void setState(AppMode new_mode); // Cambiar modo de aplicación (mutuamente excluyente) + void setState(AppMode new_mode); // Cambiar modo de aplicación (mutuamente excluyente) // Sistema de Modo DEMO void updateDemoMode(); @@ -150,9 +158,9 @@ class Engine { void toggleGravityOnOff(); // Sistema de Modo Logo (easter egg) - void toggleLogoMode(); // Activar/desactivar modo logo manual (tecla K) - void enterLogoMode(bool from_demo = false); // Entrar al modo logo (manual o automático) - void exitLogoMode(bool return_to_demo = false); // Salir del modo logo + void toggleLogoMode(); // Activar/desactivar modo logo manual (tecla K) + void enterLogoMode(bool from_demo = false); // Entrar al modo logo (manual o automático) + void exitLogoMode(bool return_to_demo = false); // Salir del modo logo // Sistema de cambio de sprites dinámico void switchTexture(); // Cambia a siguiente textura disponible diff --git a/source/text/textrenderer.cpp b/source/text/textrenderer.cpp new file mode 100644 index 0000000..92c0862 --- /dev/null +++ b/source/text/textrenderer.cpp @@ -0,0 +1,112 @@ +#include "textrenderer.h" +#include +#include + +TextRenderer::TextRenderer() : renderer_(nullptr), font_(nullptr), font_size_(0), use_antialiasing_(true) { +} + +TextRenderer::~TextRenderer() { + cleanup(); +} + +bool TextRenderer::init(SDL_Renderer* renderer, const char* font_path, int font_size, bool use_antialiasing) { + renderer_ = renderer; + font_size_ = font_size; + use_antialiasing_ = use_antialiasing; + + // Inicializar SDL_ttf si no está inicializado + if (!TTF_WasInit()) { + if (!TTF_Init()) { + SDL_Log("Error al inicializar SDL_ttf: %s", SDL_GetError()); + return false; + } + } + + // Cargar la fuente + font_ = TTF_OpenFont(font_path, font_size); + if (font_ == nullptr) { + SDL_Log("Error al cargar fuente '%s': %s", font_path, SDL_GetError()); + return false; + } + + return true; +} + +void TextRenderer::cleanup() { + if (font_ != nullptr) { + TTF_CloseFont(font_); + font_ = nullptr; + } + renderer_ = nullptr; +} + +void TextRenderer::print(int x, int y, const char* text, uint8_t r, uint8_t g, uint8_t b) { + if (!isInitialized() || text == nullptr || text[0] == '\0') { + return; + } + + // Crear superficie con el texto renderizado + SDL_Color color = {r, g, b, 255}; + SDL_Surface* text_surface = nullptr; + + if (use_antialiasing_) { + // Con antialiasing (suave, mejor calidad) + text_surface = TTF_RenderText_Blended(font_, text, strlen(text), color); + } else { + // Sin antialiasing (píxeles nítidos, estilo retro) + text_surface = TTF_RenderText_Solid(font_, text, strlen(text), color); + } + + if (text_surface == nullptr) { + SDL_Log("Error al renderizar texto: %s", SDL_GetError()); + return; + } + + // Crear textura desde la superficie + SDL_Texture* text_texture = SDL_CreateTextureFromSurface(renderer_, text_surface); + + if (text_texture == nullptr) { + SDL_Log("Error al crear textura: %s", SDL_GetError()); + SDL_DestroySurface(text_surface); + return; + } + + // Preparar rectángulo de destino + SDL_FRect dest_rect; + dest_rect.x = static_cast(x); + dest_rect.y = static_cast(y); + dest_rect.w = static_cast(text_surface->w); + dest_rect.h = static_cast(text_surface->h); + + // Renderizar la textura + SDL_RenderTexture(renderer_, text_texture, nullptr, &dest_rect); + + // Limpiar recursos + SDL_DestroyTexture(text_texture); + SDL_DestroySurface(text_surface); +} + +void TextRenderer::print(int x, int y, const std::string& text, uint8_t r, uint8_t g, uint8_t b) { + print(x, y, text.c_str(), r, g, b); +} + +int TextRenderer::getTextWidth(const char* text) { + if (!isInitialized() || text == nullptr) { + return 0; + } + + int width = 0; + int height = 0; + if (!TTF_GetStringSize(font_, text, strlen(text), &width, &height)) { + return 0; + } + return width; +} + +int TextRenderer::getTextHeight() { + if (!isInitialized()) { + return 0; + } + + return TTF_GetFontHeight(font_); +} diff --git a/source/text/textrenderer.h b/source/text/textrenderer.h new file mode 100644 index 0000000..7bbb5c4 --- /dev/null +++ b/source/text/textrenderer.h @@ -0,0 +1,36 @@ +#pragma once + +#include +#include +#include + +class TextRenderer { +public: + TextRenderer(); + ~TextRenderer(); + + // Inicializa el renderizador de texto con una fuente + bool init(SDL_Renderer* renderer, const char* font_path, int font_size, bool use_antialiasing = true); + + // Libera recursos + void cleanup(); + + // Renderiza texto en la posición especificada con color RGB + void print(int x, int y, const char* text, uint8_t r, uint8_t g, uint8_t b); + void print(int x, int y, const std::string& text, uint8_t r, uint8_t g, uint8_t b); + + // Obtiene el ancho de un texto renderizado + int getTextWidth(const char* text); + + // Obtiene la altura de la fuente + int getTextHeight(); + + // Verifica si está inicializado correctamente + bool isInitialized() const { return font_ != nullptr && renderer_ != nullptr; } + +private: + SDL_Renderer* renderer_; + TTF_Font* font_; + int font_size_; + bool use_antialiasing_; +}; diff --git a/source/theme_manager.cpp b/source/theme_manager.cpp index 7d7086c..c88cf48 100644 --- a/source/theme_manager.cpp +++ b/source/theme_manager.cpp @@ -17,8 +17,8 @@ void ThemeManager::initialize() { // 0: SUNSET (Atardecer) - Naranjas, rojos, amarillos, rosas themes_.push_back(std::make_unique( - "SUNSET", - "ATARDECER", + "Sunset", + "Atardecer", 255, 140, 60, // Color texto: naranja cálido 180.0f / 255.0f, 140.0f / 255.0f, 100.0f / 255.0f, // Fondo superior: naranja suave 40.0f / 255.0f, 20.0f / 255.0f, 60.0f / 255.0f, // Fondo inferior: púrpura oscuro @@ -30,8 +30,8 @@ void ThemeManager::initialize() { // 1: OCEAN (Océano) - Azules, turquesas, blancos themes_.push_back(std::make_unique( - "OCEAN", - "OCEANO", + "Ocean", + "Océano", 80, 200, 255, // Color texto: azul océano 100.0f / 255.0f, 150.0f / 255.0f, 200.0f / 255.0f, // Fondo superior: azul cielo 20.0f / 255.0f, 40.0f / 255.0f, 80.0f / 255.0f, // Fondo inferior: azul marino @@ -43,8 +43,8 @@ void ThemeManager::initialize() { // 2: NEON - Cian, magenta, verde lima, amarillo vibrante themes_.push_back(std::make_unique( - "NEON", - "NEON", + "Neon", + "Neón", 255, 60, 255, // Color texto: magenta brillante 20.0f / 255.0f, 20.0f / 255.0f, 40.0f / 255.0f, // Fondo superior: negro azulado 0.0f / 255.0f, 0.0f / 255.0f, 0.0f / 255.0f, // Fondo inferior: negro @@ -56,8 +56,8 @@ void ThemeManager::initialize() { // 3: FOREST (Bosque) - Verdes, marrones, amarillos otoño themes_.push_back(std::make_unique( - "FOREST", - "BOSQUE", + "Forest", + "Bosque", 100, 255, 100, // Color texto: verde natural 144.0f / 255.0f, 238.0f / 255.0f, 144.0f / 255.0f, // Fondo superior: verde claro 101.0f / 255.0f, 67.0f / 255.0f, 33.0f / 255.0f, // Fondo inferior: marrón tierra @@ -104,8 +104,8 @@ void ThemeManager::initialize() { // 5: MONOCHROME (Monocromo) - Fondo negro degradado, sprites blancos themes_.push_back(std::make_unique( - "MONOCHROME", - "MONOCROMO", + "Monochrome", + "Monocromo", 200, 200, 200, // Color texto: gris claro 20.0f / 255.0f, 20.0f / 255.0f, 20.0f / 255.0f, // Fondo superior: gris muy oscuro 0.0f / 255.0f, 0.0f / 255.0f, 0.0f / 255.0f, // Fondo inferior: negro @@ -117,8 +117,8 @@ void ThemeManager::initialize() { // 6: LAVENDER (Lavanda) - Degradado violeta oscuro → azul medianoche, pelotas amarillo dorado themes_.push_back(std::make_unique( - "LAVENDER", - "LAVANDA", + "Lavender", + "Lavanda", 255, 200, 100, // Color texto: amarillo cálido 120.0f / 255.0f, 80.0f / 255.0f, 140.0f / 255.0f, // Fondo superior: violeta oscuro 25.0f / 255.0f, 30.0f / 255.0f, 60.0f / 255.0f, // Fondo inferior: azul medianoche @@ -130,8 +130,8 @@ void ThemeManager::initialize() { // 7: CRIMSON (Carmesí) - Fondo negro-rojo oscuro, pelotas rojas uniformes themes_.push_back(std::make_unique( - "CRIMSON", - "CARMESI", + "Crimson", + "Carmesí", 255, 100, 100, // Color texto: rojo claro 40.0f / 255.0f, 0.0f / 255.0f, 0.0f / 255.0f, // Fondo superior: rojo muy oscuro 0.0f / 255.0f, 0.0f / 255.0f, 0.0f / 255.0f, // Fondo inferior: negro puro @@ -143,8 +143,8 @@ void ThemeManager::initialize() { // 8: EMERALD (Esmeralda) - Fondo negro-verde oscuro, pelotas verdes uniformes themes_.push_back(std::make_unique( - "EMERALD", - "ESMERALDA", + "Emerald", + "Esmeralda", 100, 255, 100, // Color texto: verde claro 0.0f / 255.0f, 40.0f / 255.0f, 0.0f / 255.0f, // Fondo superior: verde muy oscuro 0.0f / 255.0f, 0.0f / 255.0f, 0.0f / 255.0f, // Fondo inferior: negro puro @@ -160,8 +160,8 @@ void ThemeManager::initialize() { // 9: SUNRISE (Amanecer) - Noche → Alba → Día (loop) themes_.push_back(std::make_unique( - "SUNRISE", - "AMANECER", + "Sunrise", + "Amanecer", 255, 200, 100, // Color texto: amarillo cálido std::vector{ // Keyframe 0: Noche oscura (estado inicial) @@ -201,8 +201,8 @@ void ThemeManager::initialize() { // 10: OCEAN WAVES (Olas Oceánicas) - Azul oscuro ↔ Turquesa (loop) themes_.push_back(std::make_unique( - "OCEAN WAVES", - "OLAS OCEANICAS", + "Ocean Waves", + "Olas Oceánicas", 100, 220, 255, // Color texto: cian claro std::vector{ // Keyframe 0: Profundidad oceánica (azul oscuro) @@ -232,8 +232,8 @@ void ThemeManager::initialize() { // 11: NEON PULSE (Pulso Neón) - Negro → Neón brillante (rápido ping-pong) themes_.push_back(std::make_unique( - "NEON PULSE", - "PULSO NEON", + "Neon Pulse", + "Pulso Neón", 255, 60, 255, // Color texto: magenta brillante std::vector{ // Keyframe 0: Apagado (negro) @@ -263,8 +263,8 @@ void ThemeManager::initialize() { // 12: FIRE (Fuego Vivo) - Brasas → Llamas → Inferno (loop) themes_.push_back(std::make_unique( - "FIRE", - "FUEGO", + "Fire", + "Fuego", 255, 150, 80, // Color texto: naranja cálido std::vector{ // Keyframe 0: Brasas oscuras (estado inicial) @@ -314,8 +314,8 @@ void ThemeManager::initialize() { // 13: AURORA (Aurora Boreal) - Verde → Violeta → Cian (loop) themes_.push_back(std::make_unique( - "AURORA", - "AURORA", + "Aurora", + "Aurora", 150, 255, 200, // Color texto: verde claro std::vector{ // Keyframe 0: Verde aurora (estado inicial) @@ -365,8 +365,8 @@ void ThemeManager::initialize() { // 14: VOLCANIC (Erupción Volcánica) - Ceniza → Erupción → Lava (loop) themes_.push_back(std::make_unique( - "VOLCANIC", - "VOLCAN", + "Volcanic", + "Volcán", 200, 120, 80, // Color texto: naranja apagado std::vector{ // Keyframe 0: Ceniza oscura (pre-erupción)