[librsvg: 5/12] Use From trait implementations for conversion between Pixbuf and Cairo pixels




commit 07aefc511393780cc19ef5d11bb18db08ca5592b
Author: Sven Neumann <sven svenfoo org>
Date:   Sun Oct 11 14:40:10 2020 +0200

    Use From trait implementations for conversion between Pixbuf and Cairo pixels

 rsvg_internals/src/surface_utils/shared_surface.rs | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)
---
diff --git a/rsvg_internals/src/surface_utils/shared_surface.rs 
b/rsvg_internals/src/surface_utils/shared_surface.rs
index 6103daba..3fb47266 100644
--- a/rsvg_internals/src/surface_utils/shared_surface.rs
+++ b/rsvg_internals/src/surface_utils/shared_surface.rs
@@ -293,11 +293,7 @@ impl ImageSurface<Shared> {
                     let pixbuf_row: &[Pixel] = pixbuf_row.as_rgba();
 
                     for (src, dest) in pixbuf_row.iter().zip(surf_row.iter_mut()) {
-                        let pixel = src.premultiply();
-                        dest.r = pixel.r;
-                        dest.g = pixel.g;
-                        dest.b = pixel.b;
-                        dest.a = pixel.a;
+                        *dest = src.premultiply().into();
                     }
                 }
             } else {
@@ -305,21 +301,14 @@ impl ImageSurface<Shared> {
                     let pixbuf_row: &[RGB8] = pixbuf_row.as_rgb();
 
                     for (src, dest) in pixbuf_row.iter().zip(surf_row.iter_mut()) {
-                        dest.r = src.r;
-                        dest.g = src.g;
-                        dest.b = src.b;
-                        dest.a = 0xff;
+                        *dest = src.alpha(0xff).into();
                     }
                 }
             }
         }
 
-        match (data, content_type) {
-            (Some(bytes), Some(content_type)) => {
-                surf.surface.set_mime_data(content_type, bytes)?;
-            }
-
-            (_, _) => (),
+        if let (Some(bytes), Some(content_type)) = (data, content_type) {
+            surf.surface.set_mime_data(content_type, bytes)?;
         }
 
         surf.share()


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