From f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Sat, 23 Aug 2025 21:13:54 +0200 Subject: [PATCH] Remove Oklab gradient support --- wgpu/src/quad/gradient.rs | 46 ++++++++------------------------ wgpu/src/shader/color/oklab.wgsl | 23 ---------------- wgpu/src/triangle.rs | 39 +++++++-------------------- 3 files changed, 20 insertions(+), 88 deletions(-) delete mode 100644 wgpu/src/shader/color/oklab.wgsl diff --git a/wgpu/src/quad/gradient.rs b/wgpu/src/quad/gradient.rs index cd99c8ca..6a5eed8d 100644 --- a/wgpu/src/quad/gradient.rs +++ b/wgpu/src/quad/gradient.rs @@ -72,8 +72,6 @@ impl Pipeline { ) -> Self { #[cfg(not(target_arch = "wasm32"))] { - use crate::graphics::color; - let layout = device.create_pipeline_layout( &wgpu::PipelineLayoutDescriptor { label: Some("iced_wgpu.quad.gradient.pipeline"), @@ -86,39 +84,17 @@ impl Pipeline { device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("iced_wgpu.quad.gradient.shader"), source: wgpu::ShaderSource::Wgsl( - std::borrow::Cow::Borrowed( - if color::GAMMA_CORRECTION { - concat!( - include_str!("../shader/quad.wgsl"), - "\n", - include_str!("../shader/vertex.wgsl"), - "\n", - include_str!( - "../shader/quad/gradient.wgsl" - ), - "\n", - include_str!("../shader/color.wgsl"), - "\n", - include_str!("../shader/color/oklab.wgsl") - ) - } else { - concat!( - include_str!("../shader/quad.wgsl"), - "\n", - include_str!("../shader/vertex.wgsl"), - "\n", - include_str!( - "../shader/quad/gradient.wgsl" - ), - "\n", - include_str!("../shader/color.wgsl"), - "\n", - include_str!( - "../shader/color/linear_rgb.wgsl" - ) - ) - }, - ), + std::borrow::Cow::Borrowed(concat!( + include_str!("../shader/quad.wgsl"), + "\n", + include_str!("../shader/vertex.wgsl"), + "\n", + include_str!("../shader/quad/gradient.wgsl"), + "\n", + include_str!("../shader/color.wgsl"), + "\n", + include_str!("../shader/color/linear_rgb.wgsl") + )), ), }); diff --git a/wgpu/src/shader/color/oklab.wgsl b/wgpu/src/shader/color/oklab.wgsl deleted file mode 100644 index 91bceca7..00000000 --- a/wgpu/src/shader/color/oklab.wgsl +++ /dev/null @@ -1,23 +0,0 @@ -const to_lms = mat3x4( - vec4(0.4121656120, 0.2118591070, 0.0883097947, 0.0), - vec4(0.5362752080, 0.6807189584, 0.2818474174, 0.0), - vec4(0.0514575653, 0.1074065790, 0.6302613616, 0.0), -); - -const to_rgb = mat3x4( - vec4( 4.0767245293, -3.3072168827, 0.2307590544, 0.0), - vec4(-1.2681437731, 2.6093323231, -0.3411344290, 0.0), - vec4(-0.0041119885, -0.7034763098, 1.7068625689, 0.0), -); - -fn interpolate_color(from_: vec4, to_: vec4, factor: f32) -> vec4 { - // To Oklab - let lms_a = pow(from_ * to_lms, vec3(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0)); - let lms_b = pow(to_ * to_lms, vec3(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0)); - let mixed = mix(lms_a, lms_b, factor); - - // Back to linear RGB - var color = to_rgb * (mixed * mixed * mixed); - - return color; -} diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs index 2c900f54..682f1966 100644 --- a/wgpu/src/triangle.rs +++ b/wgpu/src/triangle.rs @@ -827,7 +827,6 @@ mod solid { mod gradient { use crate::Buffer; use crate::graphics::Antialiasing; - use crate::graphics::color; use crate::graphics::mesh; use crate::triangle; @@ -922,35 +921,15 @@ mod gradient { device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("iced_wgpu.triangle.gradient.shader"), source: wgpu::ShaderSource::Wgsl( - std::borrow::Cow::Borrowed( - if color::GAMMA_CORRECTION { - concat!( - include_str!("shader/triangle.wgsl"), - "\n", - include_str!( - "shader/triangle/gradient.wgsl" - ), - "\n", - include_str!("shader/color.wgsl"), - "\n", - include_str!("shader/color/oklab.wgsl") - ) - } else { - concat!( - include_str!("shader/triangle.wgsl"), - "\n", - include_str!( - "shader/triangle/gradient.wgsl" - ), - "\n", - include_str!("shader/color.wgsl"), - "\n", - include_str!( - "shader/color/linear_rgb.wgsl" - ) - ) - }, - ), + std::borrow::Cow::Borrowed(concat!( + include_str!("shader/triangle.wgsl"), + "\n", + include_str!("shader/triangle/gradient.wgsl"), + "\n", + include_str!("shader/color.wgsl"), + "\n", + include_str!("shader/color/linear_rgb.wgsl") + )), ), });