From 51fdb0603f917b379203531ec1021232d4b977be Mon Sep 17 00:00:00 2001 From: Justin Scofield <47263509+scawful@users.noreply.github.com> Date: Sat, 10 Sep 2022 09:06:31 -0500 Subject: [PATCH] snes_palette improvements --- src/app/gfx/snes_palette.cc | 16 +++++++++++++--- src/app/gfx/snes_palette.h | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/app/gfx/snes_palette.cc b/src/app/gfx/snes_palette.cc index e88a8b2c..625e1918 100644 --- a/src/app/gfx/snes_palette.cc +++ b/src/app/gfx/snes_palette.cc @@ -81,6 +81,10 @@ void SNESColor::setRgb(ImVec4 val) { snes = ConvertRGBtoSNES(col); } +void SNESColor::setRgb(snes_color val) { + snes = ConvertRGBtoSNES(val); +} + void SNESColor::setSNES(uint16_t val) { snes = val; snes_color col = ConvertSNEStoRGB(val); @@ -130,6 +134,15 @@ SNESPalette::SNESPalette(const std::vector& cols) { size_ = cols.size(); } +SNESPalette::SNESPalette(const std::vector& cols) { + for (const auto& each : cols) { + SNESColor scol; + scol.setRgb(each); + colors.push_back(scol); + } + size_ = cols.size(); +} + char* SNESPalette::encode() { auto data = new char[size_ * 2]; for (unsigned int i = 0; i < size_; i++) { @@ -141,7 +154,6 @@ char* SNESPalette::encode() { } SDL_Palette* SNESPalette::GetSDL_Palette() { - std::cout << "Converting SNESPalette to SDL_Palette" << std::endl; auto sdl_palette = std::make_shared(); sdl_palette->ncolors = size_; @@ -154,8 +166,6 @@ SDL_Palette* SNESPalette::GetSDL_Palette() { << " G:" << color[i].g << " B:" << color[i].b << ")" << std::endl; } sdl_palette->colors = color.data(); - colors_.push_back(color); - return sdl_palette.get(); } diff --git a/src/app/gfx/snes_palette.h b/src/app/gfx/snes_palette.h index d25a418a..bd0cdf71 100644 --- a/src/app/gfx/snes_palette.h +++ b/src/app/gfx/snes_palette.h @@ -43,6 +43,7 @@ struct SNESColor { uint16_t snes = 0; ImVec4 rgb; void setRgb(ImVec4); + void setRgb(snes_color); void setSNES(uint16_t); }; @@ -53,14 +54,13 @@ class SNESPalette { explicit SNESPalette(char* snesPal); explicit SNESPalette(const unsigned char* snes_pal); explicit SNESPalette(const std::vector&); + explicit SNESPalette(const std::vector&); char* encode(); SDL_Palette* GetSDL_Palette(); int size_ = 0; std::vector colors; - std::vector colors_arrays_; - std::vector> colors_; }; } // namespace gfx