[gnome-shell] [ShellApp] When fading, don't read alpha channel if none available



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]