summaryrefslogtreecommitdiffstats
path: root/wgpu/src/triangle.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-09-08 04:55:16 +0200
committerLibravatar GitHub <noreply@github.com>2023-09-08 04:55:16 +0200
commit89d9c45d25e9bf89e48858b135bc7a2d41c757a8 (patch)
tree3d1c109d1e92f822cb841797788cccf55ce8b09c /wgpu/src/triangle.rs
parentb5e7fb240cda919b66fb17a18cedd6d2ec064eaf (diff)
parent90cbab18b95a2a90a6a527280a6ca461203ea1b3 (diff)
downloadiced-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/triangle.rs')
-rw-r--r--wgpu/src/triangle.rs35
1 files changed, 30 insertions, 5 deletions
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index d8b23dfe..d430e607 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -487,8 +487,10 @@ mod solid {
device.create_shader_module(wgpu::ShaderModuleDescriptor {
label: Some("iced_wgpu.triangle.solid.shader"),
source: wgpu::ShaderSource::Wgsl(
- std::borrow::Cow::Borrowed(include_str!(
- "shader/triangle.wgsl"
+ std::borrow::Cow::Borrowed(concat!(
+ include_str!("shader/triangle.wgsl"),
+ "\n",
+ include_str!("shader/triangle/solid.wgsl"),
)),
),
});
@@ -537,6 +539,7 @@ mod solid {
}
mod gradient {
+ use crate::graphics::color;
use crate::graphics::mesh;
use crate::graphics::Antialiasing;
use crate::triangle;
@@ -633,9 +636,31 @@ mod gradient {
device.create_shader_module(wgpu::ShaderModuleDescriptor {
label: Some("iced_wgpu.triangle.gradient.shader"),
source: wgpu::ShaderSource::Wgsl(
- std::borrow::Cow::Borrowed(include_str!(
- "shader/triangle.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/oklab.wgsl")
+ )
+ } else {
+ concat!(
+ include_str!("shader/triangle.wgsl"),
+ "\n",
+ include_str!(
+ "shader/triangle/gradient.wgsl"
+ ),
+ "\n",
+ include_str!(
+ "shader/color/linear_rgb.wgsl"
+ )
+ )
+ },
+ ),
),
});