[gtk+/wip/window-scales: 43/69] Use gdk_cairo_pixbuf_to_surface when possible
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/window-scales: 43/69] Use gdk_cairo_pixbuf_to_surface when possible
- Date: Fri, 28 Jun 2013 10:22:27 +0000 (UTC)
commit c64b269019b2520be5863c534cb78fa48d0b19b7
Author: Alexander Larsson <alexl redhat com>
Date: Mon Jun 24 12:53:53 2013 +0200
Use gdk_cairo_pixbuf_to_surface when possible
Rather than creating a surface and drawing to it.
gtk/gtkcssimagesurface.c | 10 +---------
gtk/gtkcssstylefuncs.c | 11 ++---------
gtk/gtknumerableicon.c | 12 +-----------
3 files changed, 4 insertions(+), 29 deletions(-)
---
diff --git a/gtk/gtkcssimagesurface.c b/gtk/gtkcssimagesurface.c
index 8f2e612..a235390 100644
--- a/gtk/gtkcssimagesurface.c
+++ b/gtk/gtkcssimagesurface.c
@@ -142,20 +142,12 @@ _gtk_css_image_surface_new_for_pixbuf (GdkPixbuf *pixbuf)
{
GtkCssImage *image;
cairo_surface_t *surface;
- cairo_t *cr;
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
- surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
- cr = cairo_create (surface);
- gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
- cairo_paint (cr);
- cairo_destroy (cr);
+ surface = gdk_cairo_pixbuf_to_surface (pixbuf, NULL);
image = _gtk_css_image_surface_new (surface);
-
cairo_surface_destroy (surface);
return image;
diff --git a/gtk/gtkcssstylefuncs.c b/gtk/gtkcssstylefuncs.c
index b6fefca..a228ea4 100644
--- a/gtk/gtkcssstylefuncs.c
+++ b/gtk/gtkcssstylefuncs.c
@@ -766,7 +766,6 @@ pattern_value_parse (GtkCssParser *parser,
GFile *file;
cairo_surface_t *surface;
cairo_pattern_t *pattern;
- cairo_t *cr;
cairo_matrix_t matrix;
file = _gtk_css_parser_read_url (parser);
@@ -784,21 +783,15 @@ pattern_value_parse (GtkCssParser *parser,
return FALSE;
}
- surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
- cr = cairo_create (surface);
- gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
- cairo_paint (cr);
+ surface = gdk_cairo_pixbuf_to_surface (pixbuf, NULL);
pattern = cairo_pattern_create_for_surface (surface);
+ cairo_surface_destroy (surface);
cairo_matrix_init_scale (&matrix,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
cairo_pattern_set_matrix (pattern, &matrix);
- cairo_surface_destroy (surface);
- cairo_destroy (cr);
g_object_unref (pixbuf);
g_value_take_boxed (value, pattern);
diff --git a/gtk/gtknumerableicon.c b/gtk/gtknumerableicon.c
index f9233a5..e1811c6 100644
--- a/gtk/gtknumerableicon.c
+++ b/gtk/gtknumerableicon.c
@@ -196,7 +196,6 @@ draw_from_gicon (GtkNumerableIcon *self)
GtkIconInfo *info;
GdkPixbuf *pixbuf;
cairo_surface_t *surface;
- cairo_t *cr;
if (self->priv->style != NULL)
{
@@ -220,16 +219,7 @@ draw_from_gicon (GtkNumerableIcon *self)
if (pixbuf == NULL)
return NULL;
- surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
-
- cr = cairo_create (surface);
-
- gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
- cairo_paint (cr);
-
- cairo_destroy (cr);
+ surface = gdk_cairo_pixbuf_to_surface (pixbuf, NULL);
g_object_unref (pixbuf);
return surface;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]