la classe Texture ja pot tindre un numero indefinit de paletes 😌

This commit is contained in:
2024-07-25 10:13:20 +02:00
parent 073dd2a904
commit 1a00a08300
5 changed files with 60 additions and 23 deletions

View File

@@ -3,6 +3,7 @@
#include <SDL2/SDL.h>
#include <stdio.h>
#include <string>
#include <vector>
#ifndef TEXTURE_H
#define TEXTURE_H
@@ -25,10 +26,11 @@ private:
Surface surface; // Surface para usar imagenes en formato gif con paleta
// Variables
int width; // Ancho de la imagen
int height; // Alto de la imagen
std::string path; // Ruta de la imagen de la textura
Uint32 paleta[256]; // Paleta para la surface
int width; // Ancho de la imagen
int height; // Alto de la imagen
std::string path; // Ruta de la imagen de la textura
std::vector<std::vector<Uint32>> palettes; // Vector con las diferentes paletas
int paletteIndex; // Indice de la paleta en uso
// Crea una nueva surface
Surface newSurface(int w, int h);
@@ -40,13 +42,10 @@ private:
Surface loadSurface(const char *filename);
// Vuelca la surface en la textura
void flipSurface();
// Establece un color de la paleta
void setPal(int index, Uint32 color);
void flipSurface();
// Carga una paleta desde un fichero
void loadPal(const char *filename);
std::vector<Uint32> loadPal(const char *filename);
public:
// Constructor
@@ -90,6 +89,15 @@ public:
// Obtiene la textura
SDL_Texture *getSDLTexture();
// Añade una paleta a la lista
void addPalette(std::string path);
// Establece un color de la paleta
void setPaletteColor(int palette, int index, Uint32 color);
// Cambia la paleta de la textura
void setPalette(int palette);
};
#endif