Afegit efecte de fundit a negre per a la paleta principal i per a la secundaria. Implementat en Title

This commit is contained in:
2025-03-07 14:32:35 +01:00
parent 529bfb5e3a
commit 09ac952404
4 changed files with 40 additions and 8 deletions

View File

@@ -3,11 +3,13 @@
#include <SDL2/SDL_render.h> // Para SDL_Renderer
#include <SDL2/SDL_stdinc.h> // Para Uint8, Uint32
#include <array>
#include <numeric>
#include <memory>
#include <string>
// Alias
using Palette = std::array<Uint32, 256>;
using SubPalette = std::array<Uint8, 256>;
// Carga una paleta desde un archivo .gif
Palette loadPalette(const std::string &file_path);
@@ -71,6 +73,7 @@ class Surface
private:
std::shared_ptr<SurfaceData> surface_data_; // Datos a dibujar
Palette palette_; // Paleta para volcar la SurfaceData a una Textura
SubPalette sub_palette_; // Paleta para reindexar colores
int transparent_color_; // Indice de la paleta que se omite en la copia de datos
public:
@@ -105,8 +108,9 @@ public:
// Vuelca la SurfaceData a una textura
void copyToTexture(SDL_Renderer *renderer, SDL_Texture *texture);
// Realiza un efecto de fundido en la paleta
// Realiza un efecto de fundido en las paletas
bool fadePalette();
bool fadeSubPalette();
// Pone un pixel en la SurfaceData
void putPixel(int x, int y, Uint8 color);
@@ -137,4 +141,7 @@ public:
// Paleta
void setPalette(const std::array<Uint32, 256> &palette) { palette_ = palette; }
// Inicializa la sub paleta
void initializeSubPalette(SubPalette &palette) { std::iota(palette.begin(), palette.end(), 0); }
};