[librsvg: 13/14] benches: port pixel iterator bench to ExclusiveImageSurface



commit f9073986e8fc818e83519e7db735eaccd50cc0a6
Author: Paolo Borelli <pborelli gnome org>
Date:   Tue Jan 14 22:11:07 2020 +0100

    benches: port pixel iterator bench to ExclusiveImageSurface

 rsvg_internals/benches/pixel_iterators.rs | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)
---
diff --git a/rsvg_internals/benches/pixel_iterators.rs b/rsvg_internals/benches/pixel_iterators.rs
index 7c6be70a..a837f6e7 100644
--- a/rsvg_internals/benches/pixel_iterators.rs
+++ b/rsvg_internals/benches/pixel_iterators.rs
@@ -5,7 +5,7 @@ use criterion::{black_box, Criterion};
 use rsvg_internals::rect::IRect;
 use rsvg_internals::surface_utils::{
     iterators::Pixels,
-    shared_surface::{SharedImageSurface, SurfaceType},
+    shared_surface::{ExclusiveImageSurface, SharedImageSurface, SurfaceType},
 };
 
 const SURFACE_SIDE: i32 = 512;
@@ -19,9 +19,9 @@ const BOUNDS: IRect = IRect {
 fn bench_pixel_iterators(c: &mut Criterion) {
     c.bench_function("pixel_iterators straightforward", |b| {
         let mut surface =
-            cairo::ImageSurface::create(cairo::Format::ARgb32, SURFACE_SIDE, SURFACE_SIDE).unwrap();
-        let stride = surface.get_stride();
-        let data = surface.get_data().unwrap();
+            ExclusiveImageSurface::new(SURFACE_SIDE, SURFACE_SIDE, SurfaceType::SRgb).unwrap();
+        let stride = surface.stride() as i32;
+        let data = surface.get_data();
 
         let bounds = black_box(BOUNDS);
 
@@ -48,8 +48,7 @@ fn bench_pixel_iterators(c: &mut Criterion) {
 
     c.bench_function("pixel_iterators get_pixel", |b| {
         let surface =
-            cairo::ImageSurface::create(cairo::Format::ARgb32, SURFACE_SIDE, SURFACE_SIDE).unwrap();
-        let surface = SharedImageSurface::wrap(surface, SurfaceType::SRgb).unwrap();
+            SharedImageSurface::empty(SURFACE_SIDE, SURFACE_SIDE, SurfaceType::SRgb).unwrap();
 
         let bounds = black_box(BOUNDS);
 
@@ -76,8 +75,7 @@ fn bench_pixel_iterators(c: &mut Criterion) {
 
     c.bench_function("pixel_iterators pixels", |b| {
         let surface =
-            cairo::ImageSurface::create(cairo::Format::ARgb32, SURFACE_SIDE, SURFACE_SIDE).unwrap();
-        let data = SharedImageSurface::wrap(surface, SurfaceType::SRgb).unwrap();
+            SharedImageSurface::empty(SURFACE_SIDE, SURFACE_SIDE, SurfaceType::SRgb).unwrap();
 
         let bounds = black_box(BOUNDS);
 
@@ -87,7 +85,7 @@ fn bench_pixel_iterators(c: &mut Criterion) {
             let mut b = 0usize;
             let mut a = 0usize;
 
-            for (_x, _y, pixel) in Pixels::within(&data, bounds) {
+            for (_x, _y, pixel) in Pixels::within(&surface, bounds) {
                 r += pixel.r as usize;
                 g += pixel.g as usize;
                 b += pixel.b as usize;


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