[librsvg: 10/27] DrawingCtx.get_paint_server_surface - use set_paint_source
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 10/27] DrawingCtx.get_paint_server_surface - use set_paint_source
- Date: Fri, 5 Mar 2021 23:36:26 +0000 (UTC)
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]