[librsvg: 10/27] DrawingCtx.get_paint_server_surface - use set_paint_source




commit 3a7c33d3a43c82b670c897dc72f650083fea4f38
Author: Federico Mena Quintero <federico gnome org>
Date:   Thu Mar 4 19:47:34 2021 -0600

    DrawingCtx.get_paint_server_surface - use set_paint_source
    
    This code ignores errors from before, and even more so now that it
    resolves the paint_server.  We'll pass the UserSpacePaintSource from
    the caller in the next commits.

 src/drawing_ctx.rs | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)
---
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index 62c3a4ad..8d442ba8 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -1187,21 +1187,24 @@ impl DrawingCtx {
 
         surface.draw(&mut |cr| {
             // FIXME: we are ignoring any error
-            let _ = self.with_cairo_context(cr, &mut |dc| {
-                dc.set_source_paint_server(
-                    acquired_nodes,
-                    paint_server,
-                    opacity,
-                    bbox,
-                    current_color,
-                    values,
-                )
-                .map(|had_paint_server| {
-                    if had_paint_server {
-                        cr.paint();
-                    }
-                })
-            });
+
+            if let Ok(resolved) = paint_server.resolve(acquired_nodes) {
+                let paint_source = resolved.to_user_space(bbox, self, values);
+
+                let _ = self.with_cairo_context(cr, &mut |dc| {
+                    dc.set_paint_source(
+                        &paint_source,
+                        opacity,
+                        current_color,
+                        acquired_nodes,
+                    )
+                        .map(|had_paint_server| {
+                            if had_paint_server {
+                                cr.paint();
+                            }
+                        })
+                });
+            }
 
             Ok(())
         })?;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]