From ad7ab0f781651c1f9d566ad1908df07a2da77aa4 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 3 Feb 2011 17:39:03 +0100 Subject: gdk: Make creating a surface from a pixbuf an intenral function --- gdk/gdkcairo.c | 13 +++++++++++-- gdk/gdkinternals.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gdk/gdkcairo.c b/gdk/gdkcairo.c index 2ae8b09459..c19296d403 100644 --- a/gdk/gdkcairo.c +++ b/gdk/gdkcairo.c @@ -194,6 +194,16 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr, const GdkPixbuf *pixbuf, gdouble pixbuf_x, gdouble pixbuf_y) +{ + cairo_surface_t *surface; + + surface = _gdk_cairo_create_surface_for_pixbuf (pixbuf); + cairo_set_source_surface (cr, surface, pixbuf_x, pixbuf_y); + cairo_surface_destroy (surface); +} + +cairo_surface_t * +_gdk_cairo_create_surface_for_pixbuf (const GdkPixbuf *pixbuf) { gint width = gdk_pixbuf_get_width (pixbuf); gint height = gdk_pixbuf_get_height (pixbuf); @@ -277,8 +287,7 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr, cairo_pixels += cairo_stride; } - cairo_set_source_surface (cr, surface, pixbuf_x, pixbuf_y); - cairo_surface_destroy (surface); + return surface; } /** diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index bb33e090f7..938c020f9b 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -285,6 +285,8 @@ void gdk_synthesize_window_state (GdkWindow *window, gboolean _gdk_cairo_surface_extents (cairo_surface_t *surface, GdkRectangle *extents); +cairo_surface_t *_gdk_cairo_create_surface_for_pixbuf (const GdkPixbuf *pixbuf); + /************************************* * Interfaces used by windowing code * *************************************/ -- cgit v1.2.1