[gtk] rendericon: Ignore transparent icons
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] rendericon: Ignore transparent icons
- Date: Sun, 10 Feb 2019 09:37:47 +0000 (UTC)
commit d1ea591f18f71e059a76af8d659540c10293270a
Author: Timm Bäder <mail baedert org>
Date: Sun Feb 10 10:27:27 2019 +0100
rendericon: Ignore transparent icons
If the recoloring would end up multiplying the alpha component with 0
anyway, just skip drawing anything altogether.
This increases the icon count in the switch demo of the fishbowl from
~260 to ~280 on my system.
gtk/gtkrendericon.c | 4 ++++
1 file changed, 4 insertions(+)
---
diff --git a/gtk/gtkrendericon.c b/gtk/gtkrendericon.c
index 2d2dfa05f5..a4d867001f 100644
--- a/gtk/gtkrendericon.c
+++ b/gtk/gtkrendericon.c
@@ -133,6 +133,9 @@ gtk_css_style_snapshot_icon_paintable (GtkCssStyle *style,
gtk_icon_theme_lookup_symbolic_colors (style, &fg, &sc, &wc, &ec);
+ if (fg.alpha == 0.0f)
+ goto transparent;
+
graphene_matrix_init_from_float (&color_matrix, (float[16]) {
sc.red - fg.red, sc.green - fg.green, sc.blue - fg.blue, 0,
wc.red - fg.red, wc.green - fg.green, wc.blue - fg.blue, 0,
@@ -171,5 +174,6 @@ gtk_css_style_snapshot_icon_paintable (GtkCssStyle *style,
if (has_shadow)
gtk_snapshot_pop (snapshot);
+transparent:
gtk_css_filter_value_pop_snapshot (filter_value, snapshot);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]