From 3a4090a6eca15dd4469fa0096e2684c300d39b96 Mon Sep 17 00:00:00 2001 From: lisk77 Date: Sat, 26 Apr 2025 20:10:11 +0200 Subject: [PATCH] feat: added `to_linear` as a function of the `Color` trait --- crates/comet_colors/src/hsla.rs | 4 ++++ crates/comet_colors/src/hsva.rs | 3 +++ crates/comet_colors/src/hwba.rs | 3 +++ crates/comet_colors/src/laba.rs | 3 +++ crates/comet_colors/src/lcha.rs | 3 +++ crates/comet_colors/src/lib.rs | 1 + crates/comet_colors/src/linear_rgba.rs | 4 ++++ crates/comet_colors/src/oklaba.rs | 3 +++ crates/comet_colors/src/oklcha.rs | 3 +++ crates/comet_colors/src/rgba.rs | 6 ++++++ crates/comet_colors/src/xyza.rs | 3 +++ 11 files changed, 36 insertions(+) diff --git a/crates/comet_colors/src/hsla.rs b/crates/comet_colors/src/hsla.rs index f494cf6..e3447a1 100644 --- a/crates/comet_colors/src/hsla.rs +++ b/crates/comet_colors/src/hsla.rs @@ -106,6 +106,10 @@ impl Color for Hsla { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } + fn to_vec(&self) -> v4 { v4::new(self.hue, self.saturation, self.lightness, self.alpha) } diff --git a/crates/comet_colors/src/hsva.rs b/crates/comet_colors/src/hsva.rs index eab3327..b6c9ec0 100644 --- a/crates/comet_colors/src/hsva.rs +++ b/crates/comet_colors/src/hsva.rs @@ -103,6 +103,9 @@ impl Color for Hsva { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.hue, self.saturation, self.value, self.alpha) diff --git a/crates/comet_colors/src/hwba.rs b/crates/comet_colors/src/hwba.rs index d2f426c..283fae6 100644 --- a/crates/comet_colors/src/hwba.rs +++ b/crates/comet_colors/src/hwba.rs @@ -166,6 +166,9 @@ impl Color for Hwba { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.hue, self.whiteness, self.blackness, self.alpha) diff --git a/crates/comet_colors/src/laba.rs b/crates/comet_colors/src/laba.rs index 98b6058..0786b4c 100644 --- a/crates/comet_colors/src/laba.rs +++ b/crates/comet_colors/src/laba.rs @@ -147,6 +147,9 @@ impl Color for Laba { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.lightness, self.a, self.b, self.alpha) diff --git a/crates/comet_colors/src/lcha.rs b/crates/comet_colors/src/lcha.rs index a8ddfc0..c08ea90 100644 --- a/crates/comet_colors/src/lcha.rs +++ b/crates/comet_colors/src/lcha.rs @@ -97,6 +97,9 @@ impl Color for Lcha { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.lightness, self.chroma, self.hue, self.alpha) diff --git a/crates/comet_colors/src/lib.rs b/crates/comet_colors/src/lib.rs index 814fb0b..72f335c 100644 --- a/crates/comet_colors/src/lib.rs +++ b/crates/comet_colors/src/lib.rs @@ -24,6 +24,7 @@ mod oklcha; pub trait Color: Copy { fn to_wgpu(&self) -> wgpu::Color; + fn to_linear(&self) -> LinearRgba; fn to_vec(&self) -> v4; fn from_vec(color: v4) -> Self; } \ No newline at end of file diff --git a/crates/comet_colors/src/linear_rgba.rs b/crates/comet_colors/src/linear_rgba.rs index d54005d..8ceabe1 100644 --- a/crates/comet_colors/src/linear_rgba.rs +++ b/crates/comet_colors/src/linear_rgba.rs @@ -136,6 +136,10 @@ impl Color for LinearRgba { } } + fn to_linear(&self) -> LinearRgba { + self.clone() + } + fn to_vec(&self) -> v4 { v4::new(self.red, self.green, self.blue, self.alpha) } diff --git a/crates/comet_colors/src/oklaba.rs b/crates/comet_colors/src/oklaba.rs index d19f107..51c32ff 100644 --- a/crates/comet_colors/src/oklaba.rs +++ b/crates/comet_colors/src/oklaba.rs @@ -117,6 +117,9 @@ impl Color for Oklaba { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.lightness, self.a, self.b, self.alpha) diff --git a/crates/comet_colors/src/oklcha.rs b/crates/comet_colors/src/oklcha.rs index 9f390d6..05fffda 100644 --- a/crates/comet_colors/src/oklcha.rs +++ b/crates/comet_colors/src/oklcha.rs @@ -96,6 +96,9 @@ impl Color for Oklcha { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.lightness, self.chroma, self.hue, self.alpha) diff --git a/crates/comet_colors/src/rgba.rs b/crates/comet_colors/src/rgba.rs index 8cf3098..bd5aab6 100644 --- a/crates/comet_colors/src/rgba.rs +++ b/crates/comet_colors/src/rgba.rs @@ -348,6 +348,9 @@ impl Color for sRgba { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.red, self.green, self.blue, self.alpha) @@ -362,6 +365,9 @@ impl Color for sRgba { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new( diff --git a/crates/comet_colors/src/xyza.rs b/crates/comet_colors/src/xyza.rs index 722d1b9..f31124a 100644 --- a/crates/comet_colors/src/xyza.rs +++ b/crates/comet_colors/src/xyza.rs @@ -113,6 +113,9 @@ impl Color for Xyza { fn to_wgpu(&self) -> wgpu::Color { self.to_linear().to_wgpu() } + fn to_linear(&self) -> LinearRgba { + self.to_linear() + } fn to_vec(&self) -> v4 { v4::new(self.x, self.y, self.z, self.alpha)