From d6dad926598f69cdb33dd6e99b61483784944be5 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sat, 27 Jul 2024 10:47:29 +0200 Subject: [PATCH] Fix non-default gradient rendering with Vello (#1865) * Fix linear and radial gradients * Fix Rendering of shapes without a stroke * Simplify --------- Co-authored-by: Keavon Chambers --- node-graph/gcore/src/graphic_element/renderer.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/node-graph/gcore/src/graphic_element/renderer.rs b/node-graph/gcore/src/graphic_element/renderer.rs index af3427fa..e70ae6c1 100644 --- a/node-graph/gcore/src/graphic_element/renderer.rs +++ b/node-graph/gcore/src/graphic_element/renderer.rs @@ -377,9 +377,8 @@ impl GraphicElementRendered for VectorData { let start = lerp_bounds(gradient.start); let end = lerp_bounds(gradient.end); - let transform = self.transform * gradient.transform; - let start = transform.transform_point2(start); - let end = transform.transform_point2(end); + let start = self.transform.transform_point2(start); + let end = self.transform.transform_point2(end); let fill = peniko::Brush::Gradient(peniko::Gradient { kind: match gradient.gradient_type { GradientType::Linear => peniko::GradientKind::Linear { @@ -391,7 +390,7 @@ impl GraphicElementRendered for VectorData { peniko::GradientKind::Radial { start_center: to_point(start), start_radius: 0., - end_center: to_point(end), + end_center: to_point(start), end_radius: radius as f32, } } @@ -414,7 +413,9 @@ impl GraphicElementRendered for VectorData { miter_limit: stroke.line_join_miter_limit, ..Default::default() }; - scene.stroke(&stroke, kurbo_transform, color, None, &path); + if stroke.width > 0. { + scene.stroke(&stroke, kurbo_transform, color, None, &path); + } } } }