[gtk+] pixbuf-engine: replace call to gdk_draw_pixbuf() with Cairo equivalent



commit a22ebc974fb564be838acb0e38da69c93fd41957
Author: Benjamin Otte <otte redhat com>
Date:   Mon Jul 12 15:44:32 2010 +0200

    pixbuf-engine: replace call to gdk_draw_pixbuf() with Cairo equivalent

 modules/engines/pixbuf/pixbuf-render.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)
---
diff --git a/modules/engines/pixbuf/pixbuf-render.c b/modules/engines/pixbuf/pixbuf-render.c
index 7b5bb12..d074f64 100644
--- a/modules/engines/pixbuf/pixbuf-render.c
+++ b/modules/engines/pixbuf/pixbuf-render.c
@@ -477,6 +477,9 @@ pixbuf_render (GdkPixbuf    *src,
 
   if (tmp_pixbuf)
     {
+      cairo_t *cr;
+      
+      cr = gdk_cairo_create (window);
       if (mask)
 	{
 	  gdk_pixbuf_render_threshold_alpha (tmp_pixbuf, mask,
@@ -485,13 +488,15 @@ pixbuf_render (GdkPixbuf    *src,
 					     rect.width, rect.height,
 					     128);
 	}
-      
-      gdk_draw_pixbuf (window, NULL, tmp_pixbuf,
-		       x_offset, y_offset,
-		       rect.x, rect.y,
-		       rect.width, rect.height,
-		       GDK_RGB_DITHER_NORMAL,
-		       0, 0);
+
+      gdk_cairo_set_source_pixbuf (cr, 
+                                   tmp_pixbuf,
+                                   -x_offset + rect.x, 
+                                   -y_offset + rect.y);
+      gdk_cairo_rectangle (cr, &rect);
+      cairo_fill (cr);
+
+      cairo_destroy (cr);
       g_object_unref (tmp_pixbuf);
     }
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]