[gnome-shell] [ShellApp] When fading, don't read alpha channel if none available
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] [ShellApp] When fading, don't read alpha channel if none available
- Date: Sat, 13 Mar 2010 17:57:17 +0000 (UTC)
commit 32fd32315372333752d7ed7337f82d4f5e1d6058
Author: Colin Walters <walters verbum org>
Date: Sat Mar 13 12:56:15 2010 -0500
[ShellApp] When fading, don't read alpha channel if none available
src/shell-app.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/src/shell-app.c b/src/shell-app.c
index 08e80c2..b2f9d81 100644
--- a/src/shell-app.c
+++ b/src/shell-app.c
@@ -75,6 +75,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
CoglHandle texture;
gint width, height, rowstride;
guint8 n_channels;
+ gboolean have_alpha;
gint fade_start;
gint fade_range;
guint i, j;
@@ -109,6 +110,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
rowstride = gdk_pixbuf_get_rowstride (pixbuf);
n_channels = gdk_pixbuf_get_n_channels (pixbuf);
orig_pixels = gdk_pixbuf_get_pixels (pixbuf);
+ have_alpha = gdk_pixbuf_get_has_alpha (pixbuf);
pixbuf_byte_size = (height - 1) * rowstride +
+ width * ((n_channels * gdk_pixbuf_get_bits_per_sample (pixbuf) + 7) / 8);
@@ -127,14 +129,15 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
pixel[0] = 0.5 + pixel[0] * fade;
pixel[1] = 0.5 + pixel[1] * fade;
pixel[2] = 0.5 + pixel[2] * fade;
- pixel[3] = 0.5 + pixel[3] * fade;
+ if (have_alpha)
+ pixel[3] = 0.5 + pixel[3] * fade;
}
}
texture = cogl_texture_new_from_data (width,
height,
COGL_TEXTURE_NONE,
- gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
+ have_alpha ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
COGL_PIXEL_FORMAT_ANY,
rowstride,
pixels);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]