[Pixman] [PATCH 6/6] Move NOP src iterator into noop implementation.

Søren Sandmann Pedersen sandmann at cs.au.dk
Tue May 3 04:42:47 PDT 2011


From: Søren Sandmann Pedersen <ssp at redhat.com>

The iterator for sources where neither RGB and ALPHA are needed really
belong in the noop implementation.
---
 pixman/pixman-implementation.c |   10 +---------
 pixman/pixman-noop.c           |   11 ++++++++---
 2 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/pixman/pixman-implementation.c b/pixman/pixman-implementation.c
index 2706ceb..81c740b 100644
--- a/pixman/pixman-implementation.c
+++ b/pixman/pixman-implementation.c
@@ -260,15 +260,7 @@ _pixman_implementation_src_iter_init (pixman_implementation_t	*imp,
     iter->height = height;
     iter->flags = flags;
 
-    if ((flags & (ITER_IGNORE_ALPHA | ITER_IGNORE_RGB)) ==
-	     (ITER_IGNORE_ALPHA | ITER_IGNORE_RGB))
-    {
-	iter->get_scanline = _pixman_iter_get_scanline_noop;
-    }
-    else
-    {
-	(*imp->src_iter_init) (imp, iter);
-    }
+    (*imp->src_iter_init) (imp, iter);
 }
 
 void
diff --git a/pixman/pixman-noop.c b/pixman/pixman-noop.c
index 75ecf0b..cc8dbc9 100644
--- a/pixman/pixman-noop.c
+++ b/pixman/pixman-noop.c
@@ -82,6 +82,11 @@ noop_src_iter_init (pixman_implementation_t *imp, pixman_iter_t *iter)
     {
 	iter->get_scanline = get_scanline_null;
     }
+    else if ((iter->flags & (ITER_IGNORE_ALPHA | ITER_IGNORE_RGB)) ==
+	     (ITER_IGNORE_ALPHA | ITER_IGNORE_RGB))
+    {
+	iter->get_scanline = _pixman_iter_get_scanline_noop;
+    }
     else if ((iter->flags & ITER_NARROW)				&&
 	     (image->common.flags & FLAGS) == FLAGS			&&
 	     iter->x >= 0 && iter->y >= 0				&&
@@ -106,7 +111,7 @@ noop_dest_iter_init (pixman_implementation_t *imp, pixman_iter_t *iter)
     pixman_image_t *image = iter->image;
     uint32_t image_flags = image->common.flags;
     uint32_t iter_flags = iter->flags;
-	
+
     if ((image_flags & FAST_PATH_STD_DEST_FLAGS) == FAST_PATH_STD_DEST_FLAGS	&&
 	(iter_flags & ITER_NARROW) == ITER_NARROW				&&
 	((image->common.extended_format_code == PIXMAN_a8r8g8b8)	||
@@ -114,7 +119,7 @@ noop_dest_iter_init (pixman_implementation_t *imp, pixman_iter_t *iter)
 	  (iter_flags & (ITER_LOCALIZED_ALPHA)))))
     {
 	iter->buffer = image->bits.bits + iter->y * image->bits.rowstride + iter->x;
-	
+
 	iter->get_scanline = _pixman_iter_get_scanline_noop;
 	iter->write_back = dest_write_back_direct;
     }
@@ -138,6 +143,6 @@ _pixman_implementation_create_noop (pixman_implementation_t *fallback)
 
     imp->src_iter_init = noop_src_iter_init;
     imp->dest_iter_init = noop_dest_iter_init;
-    
+
     return imp;
 }
-- 
1.7.4



More information about the Pixman mailing list