diff options
author | 2023-09-08 04:55:16 +0200 | |
---|---|---|
committer | 2023-09-08 04:55:16 +0200 | |
commit | 89d9c45d25e9bf89e48858b135bc7a2d41c757a8 (patch) | |
tree | 3d1c109d1e92f822cb841797788cccf55ce8b09c /wgpu/src/quad | |
parent | b5e7fb240cda919b66fb17a18cedd6d2ec064eaf (diff) | |
parent | 90cbab18b95a2a90a6a527280a6ca461203ea1b3 (diff) | |
download | iced-89d9c45d25e9bf89e48858b135bc7a2d41c757a8.tar.gz iced-89d9c45d25e9bf89e48858b135bc7a2d41c757a8.tar.bz2 iced-89d9c45d25e9bf89e48858b135bc7a2d41c757a8.zip |
Merge pull request #2055 from matze/perceptual-gradient
Compute gradients in Oklab color space
Diffstat (limited to 'wgpu/src/quad')
-rw-r--r-- | wgpu/src/quad/gradient.rs | 19 | ||||
-rw-r--r-- | wgpu/src/quad/solid.rs | 6 |
2 files changed, 23 insertions, 2 deletions
diff --git a/wgpu/src/quad/gradient.rs b/wgpu/src/quad/gradient.rs index 6db37252..a8e83d01 100644 --- a/wgpu/src/quad/gradient.rs +++ b/wgpu/src/quad/gradient.rs @@ -1,3 +1,4 @@ +use crate::graphics::color; use crate::graphics::gradient; use crate::quad::{self, Quad}; use crate::Buffer; @@ -78,7 +79,23 @@ impl Pipeline { device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("iced_wgpu.quad.gradient.shader"), source: wgpu::ShaderSource::Wgsl(std::borrow::Cow::Borrowed( - include_str!("../shader/quad.wgsl"), + if color::GAMMA_CORRECTION { + concat!( + include_str!("../shader/quad.wgsl"), + "\n", + include_str!("../shader/quad/gradient.wgsl"), + "\n", + include_str!("../shader/color/oklab.wgsl") + ) + } else { + concat!( + include_str!("../shader/quad.wgsl"), + "\n", + include_str!("../shader/quad/gradient.wgsl"), + "\n", + include_str!("../shader/color/linear_rgb.wgsl") + ) + }, )), }); diff --git a/wgpu/src/quad/solid.rs b/wgpu/src/quad/solid.rs index f8f1e3a5..9bc6b466 100644 --- a/wgpu/src/quad/solid.rs +++ b/wgpu/src/quad/solid.rs @@ -72,7 +72,11 @@ impl Pipeline { device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("iced_wgpu.quad.solid.shader"), source: wgpu::ShaderSource::Wgsl(std::borrow::Cow::Borrowed( - include_str!("../shader/quad.wgsl"), + concat!( + include_str!("../shader/quad.wgsl"), + "\n", + include_str!("../shader/quad/solid.wgsl"), + ), )), }); |