modificats els metodes de ordenació de paleta: luminosidad per optimal i spectrum per referece

This commit is contained in:
2026-04-10 08:39:10 +02:00
parent 138eb26249
commit 9aff4432df
6 changed files with 146 additions and 78 deletions

View File

@@ -15,9 +15,9 @@ class Surface;
// Modo de ordenación de paletas
enum class PaletteSortMode : int {
ORIGINAL = 0, // Paleta tal cual viene del fichero
LUMINANCE = 1, // Ordenada por luminancia percibida
SPECTRUM = 2, // Reordenada para imitar la paleta ZX Spectrum
ORIGINAL = 0, // Paleta tal cual viene del fichero
OPTIMAL = 1, // Asignación óptima a la paleta por defecto (Hungarian algorithm)
REFERENCE = 2, // Asignación greedy a la paleta por defecto
COUNT = 3
};
@@ -53,9 +53,10 @@ class PaletteManager {
void apply(); // Aplica la paleta actual a ambas surfaces
[[nodiscard]] auto findIndex(const std::string& name) const -> size_t; // Localiza paleta por nombre en el vector
void processPathList(); // Extrae nombres de archivo de las rutas completas
static auto sortPalette(const Palette& palette, PaletteSortMode mode) -> Palette; // Reordena una paleta según el modo
static auto sortPalette(const Palette& palette, PaletteSortMode mode, const Palette& reference) -> Palette;
std::vector<std::string> palettes_;
Palette reference_palette_{}; // Paleta de referencia para el modo REFERENCE
size_t current_{0};
PaletteSortMode sort_mode_{PaletteSortMode::ORIGINAL};
std::shared_ptr<Surface> game_surface_;