From 0c66c2946e858ff6a5fe7b07843e7e072399ed76 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 14 Jul 2024 19:34:43 -0400 Subject: [PATCH] update SnesColorEdit4 --- src/app/gui/color.cc | 17 +++++++---------- src/app/gui/color.h | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/app/gui/color.cc b/src/app/gui/color.cc index ccf96c94..34ae470a 100644 --- a/src/app/gui/color.cc +++ b/src/app/gui/color.cc @@ -1,5 +1,6 @@ #include "color.h" +#include #include #include @@ -34,20 +35,16 @@ IMGUI_API bool SnesColorButton(absl::string_view id, SnesColor& color, return pressed; } -IMGUI_API bool SnesColorEdit4(absl::string_view label, SnesColor& color, +IMGUI_API bool SnesColorEdit4(absl::string_view label, SnesColor* color, ImGuiColorEditFlags flags) { - // Convert the SNES color values to ImGui color values (normalized to 0-1 - // range) - ImVec4 displayColor = ConvertSNESColorToImVec4(color); + ImVec4 displayColor = ConvertSNESColorToImVec4(*color); // Call the original ImGui::ColorEdit4 with the converted color - bool pressed = ImGui::ColorEdit4(label.data(), (float*)&displayColor, flags); + bool pressed = + ImGui::ColorEdit4(label.data(), (float*)&displayColor.x, flags); - // Convert the ImGui color values back to SNES color values (normalized to - // 0-255 range) - color = SnesColor(static_cast(displayColor.x * 255.0f), - static_cast(displayColor.y * 255.0f), - static_cast(displayColor.z * 255.0f)); + color->set_rgb(displayColor); + color->set_snes(gfx::ConvertRGBtoSNES(displayColor)); return pressed; } diff --git a/src/app/gui/color.h b/src/app/gui/color.h index 1db45db5..e843a36a 100644 --- a/src/app/gui/color.h +++ b/src/app/gui/color.h @@ -25,7 +25,7 @@ IMGUI_API bool SnesColorButton(absl::string_view id, SnesColor& color, ImGuiColorEditFlags flags = 0, const ImVec2& size_arg = ImVec2(0, 0)); -IMGUI_API bool SnesColorEdit4(absl::string_view label, SnesColor& color, +IMGUI_API bool SnesColorEdit4(absl::string_view label, SnesColor* color, ImGuiColorEditFlags flags = 0); absl::Status DisplayPalette(app::gfx::SnesPalette& palette, bool loaded);