diff options
author | 2023-05-31 21:31:58 +0200 | |
---|---|---|
committer | 2023-05-31 21:31:58 +0200 | |
commit | faa7627ea41b1ce372bae7f0d2ae36e9b15a97a3 (patch) | |
tree | a4e8dfb4fb901bdf8fa401b45601af6cf44c4567 /wgpu/src/geometry.rs | |
parent | b5f102c55835cf42427f9f8672634e81a5d724f6 (diff) | |
download | iced-faa7627ea41b1ce372bae7f0d2ae36e9b15a97a3.tar.gz iced-faa7627ea41b1ce372bae7f0d2ae36e9b15a97a3.tar.bz2 iced-faa7627ea41b1ce372bae7f0d2ae36e9b15a97a3.zip |
Introduce `web-colors` feature flag to enable sRGB linear blending
This is how browsers perform color management. They treat
gamma-corrected sRGB colors as if they were linear RGB.
Correctness aside, this mode is introduced for legacy reasons. Most
UI/UX tooling uses this color management as well, and many have created
an intuition about how color should behave from interacting with a
browser.
This feature flag should facilitate application development with `iced`
in those cases.
More details: https://webcolorisstillbroken.com/
Diffstat (limited to 'wgpu/src/geometry.rs')
-rw-r--r-- | wgpu/src/geometry.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs index 740ec20c..f81b5b2f 100644 --- a/wgpu/src/geometry.rs +++ b/wgpu/src/geometry.rs @@ -1,5 +1,6 @@ //! Build and draw geometry. use crate::core::{Point, Rectangle, Size, Vector}; +use crate::graphics::color; use crate::graphics::geometry::fill::{self, Fill}; use crate::graphics::geometry::{ LineCap, LineDash, LineJoin, Path, Stroke, Style, Text, @@ -68,7 +69,7 @@ impl BufferStack { (Style::Solid(color), Buffer::Solid(buffer)) => { Box::new(tessellation::BuffersBuilder::new( buffer, - TriangleVertex2DBuilder(color.into_linear()), + TriangleVertex2DBuilder(color::pack(*color)), )) } (Style::Gradient(gradient), Buffer::Gradient(buffer)) => { @@ -91,7 +92,7 @@ impl BufferStack { (Style::Solid(color), Buffer::Solid(buffer)) => { Box::new(tessellation::BuffersBuilder::new( buffer, - TriangleVertex2DBuilder(color.into_linear()), + TriangleVertex2DBuilder(color::pack(*color)), )) } (Style::Gradient(gradient), Buffer::Gradient(buffer)) => { @@ -526,7 +527,7 @@ impl tessellation::StrokeVertexConstructor<primitive::GradientVertex2D> } } -struct TriangleVertex2DBuilder([f32; 4]); +struct TriangleVertex2DBuilder(color::Packed); impl tessellation::FillVertexConstructor<primitive::ColoredVertex2D> for TriangleVertex2DBuilder |