[gtk+] blur: Fix pixel sizes
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] blur: Fix pixel sizes
- Date: Thu, 20 Sep 2012 00:46:57 +0000 (UTC)
commit 267d1793c6ebf1d7b2dd0e4814c19ca7a21515d9
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]