[gtk+/gtk-2-22] pixbuf-engine: Replace gdk_draw_pixbuf() with Cairo equivalent
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-22] pixbuf-engine: Replace gdk_draw_pixbuf() with Cairo equivalent
- Date: Sat, 7 Aug 2010 13:55:39 +0000 (UTC)
commit 769c63c7efcf77562815c2d0660be6f764f5e37a
Author: Benjamin Otte <otte redhat com>
Date: Mon Jul 12 15:41:27 2010 +0200
pixbuf-engine: Replace gdk_draw_pixbuf() with Cairo equivalent
This replaces the tiled fill call only.
modules/engines/pixbuf/pixbuf-render.c | 36 ++++++++-----------------------
1 files changed, 10 insertions(+), 26 deletions(-)
---
diff --git a/modules/engines/pixbuf/pixbuf-render.c b/modules/engines/pixbuf/pixbuf-render.c
index d16e10a..7b5bb12 100644
--- a/modules/engines/pixbuf/pixbuf-render.c
+++ b/modules/engines/pixbuf/pixbuf-render.c
@@ -844,35 +844,19 @@ theme_pixbuf_render (ThemePixbuf *theme_pb,
}
else
{
- GdkPixmap *tmp_pixmap;
- GdkGC *tmp_gc;
- GdkGCValues gc_values;
-
- tmp_pixmap = gdk_pixmap_new (window,
- pixbuf_width,
- pixbuf_height,
- -1);
- tmp_gc = gdk_gc_new (tmp_pixmap);
- gdk_draw_pixbuf (tmp_pixmap, tmp_gc, pixbuf,
- 0, 0,
- 0, 0,
- pixbuf_width, pixbuf_height,
- GDK_RGB_DITHER_NORMAL,
- 0, 0);
- g_object_unref (tmp_gc);
-
- gc_values.fill = GDK_TILED;
- gc_values.tile = tmp_pixmap;
- tmp_gc = gdk_gc_new_with_values (window,
- &gc_values, GDK_GC_FILL | GDK_GC_TILE);
+ cairo_t *cr = gdk_cairo_create (window);
+
+ gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
+ cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT);
+
if (clip_rect)
- gdk_draw_rectangle (window, tmp_gc, TRUE,
- clip_rect->x, clip_rect->y, clip_rect->width, clip_rect->height);
+ gdk_cairo_rectangle (cr, clip_rect);
else
- gdk_draw_rectangle (window, tmp_gc, TRUE, x, y, width, height);
+ cairo_rectangle (cr, x, y, width, height);
- g_object_unref (tmp_gc);
- g_object_unref (tmp_pixmap);
+ cairo_fill (cr);
+
+ cairo_destroy (cr);
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]