[gtk+/composite-templates] blur: Fix pixel sizes



commit 6fc9997a044dacf2b123ab85498fa795e6c5dd58
Author: Benjamin Otte <otte redhat com>
Date:   Wed Sep 19 22:23:47 2012 +0200

    blur: Fix pixel sizes
    
    The code accesses pixels in a chunks of 4 bytes, so we must only support
    formats where the size of a single pixel is 4 bytes.
    Fix RGB24 to be 4 bytes (the alpha channel is ignored) and disallow A8.

 gtk/gtkcairoblur.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkcairoblur.c b/gtk/gtkcairoblur.c
index fb08401..7748431 100644
--- a/gtk/gtkcairoblur.c
+++ b/gtk/gtkcairoblur.c
@@ -227,8 +227,7 @@ _gtk_cairo_blur_surface (cairo_surface_t* surface,
   g_return_if_fail (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE);
 
   format = cairo_image_surface_get_format (surface);
-  g_return_if_fail (format == CAIRO_FORMAT_A8 ||
-                    format == CAIRO_FORMAT_RGB24 ||
+  g_return_if_fail (format == CAIRO_FORMAT_RGB24 ||
                     format == CAIRO_FORMAT_ARGB32);
 
   if (radius == 0)
@@ -248,12 +247,10 @@ _gtk_cairo_blur_surface (cairo_surface_t* surface,
       _expblur (pixels, width, height, 4, radius, 16, 7);
       break;
     case CAIRO_FORMAT_RGB24:
-      _expblur (pixels, width, height, 3, radius, 16, 7);
-      break;
-    case CAIRO_FORMAT_A8:
-      _expblur (pixels, width, height, 1, radius, 16, 7);
+      _expblur (pixels, width, height, 4, radius, 16, 7);
       break;
     default:
+      g_assert_not_reached ();
       break;
   }
 



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