Ja funciona la roda de paletes

This commit is contained in:
2025-03-06 11:45:06 +01:00
parent 10debde847
commit 60c926a9c9
3 changed files with 29 additions and 4 deletions

View File

@@ -27,7 +27,6 @@ namespace globalInputs
// Cambia la paleta de colores // Cambia la paleta de colores
void switchPalette() void switchPalette()
{ {
//options.video.palette = options.video.palette == Palette::ZXSPECTRUM ? Palette::ZXARNE : Palette::ZXSPECTRUM;
Screen::get()->nextPalette(); Screen::get()->nextPalette();
} }
@@ -102,7 +101,7 @@ namespace globalInputs
else if (Input::get()->checkInput(InputAction::TOGGLE_PALETTE, REPEAT_FALSE)) else if (Input::get()->checkInput(InputAction::TOGGLE_PALETTE, REPEAT_FALSE))
{ {
switchPalette(); switchPalette();
//Notifier::get()->show({"PALETTE " + std::string(options.video.palette == Palette::ZXSPECTRUM ? "ZX SPECTRUM" : "ZX ARNE")}, NotificationText::CENTER); Notifier::get()->show({"PALETTE " + options.video.palette}, NotificationText::CENTER);
} }
} }
} }

View File

@@ -92,6 +92,9 @@ Screen::Screen(SDL_Window *window, SDL_Renderer *renderer)
// Muestra la ventana // Muestra la ventana
SDL_SetWindowPosition(window_, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED); SDL_SetWindowPosition(window_, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
show(); show();
// Extrae el nombre de las paletas desde su ruta
processPaletteList();
} }
// Destructor // Destructor
@@ -130,12 +133,11 @@ void Screen::startDrawOnBorder()
void Screen::render() void Screen::render()
{ {
// Renderiza sobre game_surface_ los overlays // Renderiza sobre game_surface_ los overlays
//renderNotifications(); renderNotifications();
// Copia la surface a game_texture_ // Copia la surface a game_texture_
game_surface_->copyToTexture(renderer_, game_texture_); game_surface_->copyToTexture(renderer_, game_texture_);
// Si está el borde activo, vuelca gameCanvas sobre borderCanvas // Si está el borde activo, vuelca gameCanvas sobre borderCanvas
if (options.video.border.enabled) if (options.video.border.enabled)
{ {
@@ -398,4 +400,25 @@ void Screen::nextPalette()
game_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_))); game_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_)));
border_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_))); border_surface_->loadPalette(Resource::get()->getPalette(palettes_.at(current_palette_)));
options.video.palette = palettes_.at(current_palette_);
// Eliminar ".gif"
size_t pos = options.video.palette.find(".gif");
if (pos != std::string::npos)
{
options.video.palette.erase(pos, 4);
}
// Convertir a mayúsculas
std::transform(options.video.palette.begin(), options.video.palette.end(), options.video.palette.begin(), ::toupper);
}
// Extrae los nombres de las paletas
void Screen::processPaletteList()
{
for (auto &palette : palettes_)
{
palette = getFileName(palette);
}
} }

View File

@@ -63,6 +63,9 @@ private:
// Reinicia los shaders // Reinicia los shaders
void resetShaders(); void resetShaders();
// Extrae los nombres de las paletas
void processPaletteList();
// Constructor // Constructor
Screen(SDL_Window *window, SDL_Renderer *renderer); Screen(SDL_Window *window, SDL_Renderer *renderer);