Notify fix: Estaba duplicada la textura con los bitmaps del texto

This commit is contained in:
2023-05-07 13:02:40 +02:00
parent 5f32aba46f
commit ef073ed713
2 changed files with 12 additions and 15 deletions

View File

@@ -4,7 +4,7 @@
#include <iostream>
// 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);

View File

@@ -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,7 +50,6 @@ 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
@@ -58,7 +57,7 @@ private:
// Variables
color_t bgColor; // Color de fondo de las notificaciones
int waitTime; // Tiempo que se ve la notificación
std::vector<notification_t> notifications; // La lista de notificaciones activas
vector<notification_t> notifications; // La lista de notificaciones activas
JA_Sound_t *sound; // Sonido a reproducir cuando suena la notificación
// Elimina las notificaciones finalizadas
@@ -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();