#ifndef YAZE_APP_GFX_PALETTE_H #define YAZE_APP_GFX_PALETTE_H #include #include #include #include #include #include #include #include #include namespace yaze { namespace app { namespace gfx { struct SNESColor { SNESColor(); explicit SNESColor(ImVec4); uint16_t snes = 0; ImVec4 rgb; void setRgb(ImVec4); void setSNES(uint16_t); uint8_t approxSNES(); ImVec4 approxRGB(); }; class SNESPalette { public: SNESPalette() = default; explicit SNESPalette(uint8_t mSize); explicit SNESPalette(char* snesPal); explicit SNESPalette(const unsigned char* snes_pal); 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 } // namespace app } // namespace yaze #endif // YAZE_APP_GFX_PALETTE_H