From ef073ed71309f3949e42530bddf30e1686896261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Sun, 7 May 2023 13:02:40 +0200 Subject: [PATCH] Notify fix: Estaba duplicada la textura con los bitmaps del texto --- units/notify.cpp | 10 ++++------ units/notify.h | 17 ++++++++--------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/units/notify.cpp b/units/notify.cpp index fe0b1cb..9050928 100644 --- a/units/notify.cpp +++ b/units/notify.cpp @@ -4,7 +4,7 @@ #include // Constructor -Notify::Notify(SDL_Renderer *renderer, std::string iconFile, std::string bitmapFile, std::string textFile, std::string soundFile, options_t *options) +Notify::Notify(SDL_Renderer *renderer, string iconFile, string bitmapFile, string textFile, string soundFile, options_t *options) { // Inicializa variables this->renderer = renderer; @@ -14,8 +14,7 @@ Notify::Notify(SDL_Renderer *renderer, std::string iconFile, std::string bitmapF // Crea objetos iconTexture = new Texture(renderer, iconFile); - textTexture = new Texture(renderer, bitmapFile); - text = new Text(textFile, textTexture, renderer); + text = new Text(textFile, bitmapFile, renderer); sound = JA_LoadSound(soundFile.c_str()); } @@ -23,7 +22,6 @@ Notify::Notify(SDL_Renderer *renderer, std::string iconFile, std::string bitmapF Notify::~Notify() { // Libera la memoria de los objetos - delete textTexture; delete iconTexture; delete text; JA_DeleteSound(sound); @@ -126,13 +124,13 @@ void Notify::clearFinishedNotifications() } // Muestra una notificación de texto por pantalla; -void Notify::showText(std::string text1, std::string text2, int icon) +void Notify::showText(string text1, string text2, int icon) { // Inicializa variables const int iconSize = 16; const int padding = text->getCharacterSize(); const int iconSpace = icon >= 0 ? iconSize + padding : 0; - const std::string txt = text1.length() > text2.length() ? text1 : text2; + const string txt = text1.length() > text2.length() ? text1 : text2; const int width = text->lenght(txt) + (padding * 2) + iconSpace; const int height = (text->getCharacterSize() * 2) + (padding * 2); diff --git a/units/notify.h b/units/notify.h index d73a0b6..28e4035 100644 --- a/units/notify.h +++ b/units/notify.h @@ -36,8 +36,8 @@ private: struct notification_t { - std::string text1; - std::string text2; + string text1; + string text2; int counter; notification_state_e state; notification_position_e position; @@ -50,16 +50,15 @@ private: // Objetos y punteros SDL_Renderer *renderer; // El renderizador de la ventana - Texture *textTexture; // Textura para la fuente de las notificaciones Texture *iconTexture; // Textura para los iconos de las notificaciones Text *text; // Objeto para dibujar texto options_t *options; // Variable con todas las opciones del programa // Variables - color_t bgColor; // Color de fondo de las notificaciones - int waitTime; // Tiempo que se ve la notificación - std::vector notifications; // La lista de notificaciones activas - JA_Sound_t *sound; // Sonido a reproducir cuando suena la notificación + color_t bgColor; // Color de fondo de las notificaciones + int waitTime; // Tiempo que se ve la notificación + vector notifications; // La lista de notificaciones activas + JA_Sound_t *sound; // Sonido a reproducir cuando suena la notificación // Elimina las notificaciones finalizadas void clearFinishedNotifications(); @@ -72,13 +71,13 @@ public: void update(); // Constructor - Notify(SDL_Renderer *renderer, std::string iconFile, std::string bitmapFile, std::string textFile, std::string soundFile, options_t *options); + Notify(SDL_Renderer *renderer, string iconFile, string bitmapFile, string textFile, string soundFile, options_t *options); // Destructor ~Notify(); // Muestra una notificación de texto por pantalla; - void showText(std::string text1 = "", std::string text2 = "", int icon = -1); + void showText(string text1 = "", string text2 = "", int icon = -1); // Indica si hay notificaciones activas bool active();