From 29b70485fcc843b5c79534f55a6c53f06ccdeeec Mon Sep 17 00:00:00 2001 From: Matthew Olsson Date: Sat, 2 Mar 2024 13:42:16 -0700 Subject: [PATCH] LibGfx: Add formatters for Gfx::Color's different representations This makes debugging these values a bit easier --- Userland/Libraries/LibGfx/Color.cpp | 15 +++++++++++++++ Userland/Libraries/LibGfx/Color.h | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Userland/Libraries/LibGfx/Color.cpp b/Userland/Libraries/LibGfx/Color.cpp index afe8900f74..f4fd91823c 100644 --- a/Userland/Libraries/LibGfx/Color.cpp +++ b/Userland/Libraries/LibGfx/Color.cpp @@ -375,3 +375,18 @@ ErrorOr AK::Formatter::format(FormatBuilder& builder, Gfx::Col { return Formatter::format(builder, value.to_byte_string()); } + +ErrorOr AK::Formatter::format(FormatBuilder& builder, Gfx::YUV value) +{ + return Formatter::format(builder, "{} {} {}"sv, value.y, value.u, value.v); +} + +ErrorOr AK::Formatter::format(FormatBuilder& builder, Gfx::HSV value) +{ + return Formatter::format(builder, "{} {} {}"sv, value.hue, value.saturation, value.value); +} + +ErrorOr AK::Formatter::format(FormatBuilder& builder, Gfx::Oklab value) +{ + return Formatter::format(builder, "{} {} {}"sv, value.L, value.a, value.b); +} diff --git a/Userland/Libraries/LibGfx/Color.h b/Userland/Libraries/LibGfx/Color.h index daed6e3f55..60e1a136fc 100644 --- a/Userland/Libraries/LibGfx/Color.h +++ b/Userland/Libraries/LibGfx/Color.h @@ -626,6 +626,21 @@ struct Formatter : public Formatter { ErrorOr format(FormatBuilder&, Gfx::Color); }; +template<> +struct Formatter : public Formatter { + ErrorOr format(FormatBuilder&, Gfx::YUV); +}; + +template<> +struct Formatter : public Formatter { + ErrorOr format(FormatBuilder&, Gfx::HSV); +}; + +template<> +struct Formatter : public Formatter { + ErrorOr format(FormatBuilder&, Gfx::Oklab); +}; + } namespace IPC {