From 54a19f0adce0361aba9b4f4f5a3d454475875fe5 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 7 Dec 2025 10:32:18 +0100 Subject: [PATCH 1/2] We now use normal blending instead of using Mix::Clip / the clip_layer --- node-graph/libraries/rendering/src/renderer.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/node-graph/libraries/rendering/src/renderer.rs b/node-graph/libraries/rendering/src/renderer.rs index 4171ab6d04..efc3737490 100644 --- a/node-graph/libraries/rendering/src/renderer.rs +++ b/node-graph/libraries/rendering/src/renderer.rs @@ -457,7 +457,8 @@ impl Render for Artboard { scene.pop_layer(); if self.clip { - scene.push_clip_layer(kurbo::Affine::new(transform.to_cols_array()), &rect); + let blend_mode = peniko::BlendMode::new(peniko::Mix::Normal, peniko::Compose::SrcOver); + scene.push_layer(blend_mode, 1., kurbo::Affine::new(transform.to_cols_array()), &rect); } // Since the content's transform is right multiplied in when rendering the content, we just need to right multiply by the artboard offset here. let child_transform = transform * DAffine2::from_translation(self.location.as_dvec2()); @@ -622,7 +623,7 @@ impl Render for Table { scene.push_layer(peniko::Mix::Normal, 1., kurbo::Affine::IDENTITY, &rect); mask_element.render_to_vello(scene, transform_mask, context, &render_params.for_clipper()); - scene.push_clip_layer(kurbo::Affine::IDENTITY, &rect); + scene.push_layer(peniko::BlendMode::new(peniko::Mix::Normal, peniko::Compose::SrcIn), 1., kurbo::Affine::IDENTITY, &rect); } row.element.render_to_vello(scene, transform, context, render_params); From 0db94df21ff695b7e5948718637e1a5603d57b91 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 7 Dec 2025 10:54:47 +0100 Subject: [PATCH 2/2] Revert the revert for the clip using SrcOver --- node-graph/libraries/rendering/src/renderer.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/node-graph/libraries/rendering/src/renderer.rs b/node-graph/libraries/rendering/src/renderer.rs index efc3737490..9ff6772990 100644 --- a/node-graph/libraries/rendering/src/renderer.rs +++ b/node-graph/libraries/rendering/src/renderer.rs @@ -457,8 +457,7 @@ impl Render for Artboard { scene.pop_layer(); if self.clip { - let blend_mode = peniko::BlendMode::new(peniko::Mix::Normal, peniko::Compose::SrcOver); - scene.push_layer(blend_mode, 1., kurbo::Affine::new(transform.to_cols_array()), &rect); + scene.push_clip_layer(kurbo::Affine::new(transform.to_cols_array()), &rect); } // Since the content's transform is right multiplied in when rendering the content, we just need to right multiply by the artboard offset here. let child_transform = transform * DAffine2::from_translation(self.location.as_dvec2());