Files
coffee_crisis_arcade_edition/source/fade.h

65 lines
1.4 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include "common/texture.h"
#include "common/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:
// Objetos y punteros
SDL_Renderer *renderer; // El renderizador de la ventana
SDL_Texture *backbuffer; // Textura para usar como backbuffer
// Variables
Uint8 type; // 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
Uint8 r, g, b; // 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
param_t *param; // Puntero con todos los parametros del programa
// Inicializa las variables
void init();
public:
// Constructor
Fade(SDL_Renderer *renderer, param_t *param);
// Destructor
~Fade();
// Pinta una transición en pantalla
void render();
// Actualiza las variables internas
void update();
// Activa el fade
void activate();
// Comprueba si ha terminado la transicion
bool hasEnded();
// Comprueba si está activo
bool isEnabled();
// Establece el tipo de fade
void setType(Uint8 type);
// Establece el color del fade
void setColor(Uint8 r, Uint8 g, Uint8 b);
};
#endif