#pragma once #include #include "ltexture.h" #include "utils.h" #ifndef FADE_H #define FADE_H // Tipos de fundido #define FADE_FULLSCREEN 0 #define FADE_CENTER 1 #define FADE_RANDOM_SQUARE 2 // Clase Fade class Fade { private: SDL_Renderer *renderer; // El renderizador de la ventana SDL_Texture *backbuffer; // Textura para usar como backbuffer Uint8 fadeType; // Tipo de fade a realizar Uint16 counter; // Contador interno bool enabled; // Indica si el fade está activo bool finished; // Indica si ha terminado la transición color_t color; // Colores para el fade SDL_Rect rect1; // Rectangulo usado para crear los efectos de transición SDL_Rect rect2; // Rectangulo usado para crear los efectos de transición public: // Constructor Fade(SDL_Renderer *renderer); // Destructor ~Fade(); // Inicializa las variables void init(color_t color); // Pinta una transición en pantalla void render(); // Actualiza las variables internas void update(); // Activa el fade void activateFade(); // Comprueba si ha terminado la transicion bool hasEnded(); // Comprueba si está activo bool isEnabled(); // Establece el tipo de fade void setFadeType(int fadeType); }; #endif