diff options
author | Matthias Clasen <mclasen@redhat.com> | 2010-06-26 01:06:30 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-06-26 01:09:05 -0400 |
commit | 16ecf558321030a12795cdd0b67ebbdc198d5c43 (patch) | |
tree | c3c4ff539366a54230e56861c7f0ac740ba326f5 /gdk/gdkdraw.c | |
parent | d722adb76abce67984f24a98433c245d86674b5c (diff) | |
download | gtk+-16ecf558321030a12795cdd0b67ebbdc198d5c43.tar.gz |
Make GTK+ use an external gdk-pixbuf
Diffstat (limited to 'gdk/gdkdraw.c')
-rw-r--r-- | gdk/gdkdraw.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/gdk/gdkdraw.c b/gdk/gdkdraw.c index d2a3317a93..47a2a7d99a 100644 --- a/gdk/gdkdraw.c +++ b/gdk/gdkdraw.c @@ -27,12 +27,12 @@ #include "config.h" #include <math.h> #include <pango/pangocairo.h> +#include <gdk-pixbuf/gdk-pixbuf.h> #include "gdkcairo.h" #include "gdkdrawable.h" #include "gdkinternals.h" #include "gdkwindow.h" #include "gdkscreen.h" -#include "gdk-pixbuf-private.h" #include "gdkpixbuf.h" #include "gdkalias.h" @@ -1377,20 +1377,21 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable, GdkDrawable *real_drawable; g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); - g_return_if_fail (pixbuf->colorspace == GDK_COLORSPACE_RGB); - g_return_if_fail (pixbuf->n_channels == 3 || pixbuf->n_channels == 4); - g_return_if_fail (pixbuf->bits_per_sample == 8); + g_return_if_fail (gdk_pixbuf_get_colorspace (pixbuf) == GDK_COLORSPACE_RGB); + g_return_if_fail (gdk_pixbuf_get_n_channels (pixbuf) == 3 || + gdk_pixbuf_get_n_channels (pixbuf) == 4); + g_return_if_fail (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8); g_return_if_fail (drawable != NULL); if (width == -1) - width = pixbuf->width; + width = gdk_pixbuf_get_width (pixbuf); if (height == -1) - height = pixbuf->height; + height = gdk_pixbuf_get_height (pixbuf); g_return_if_fail (width >= 0 && height >= 0); - g_return_if_fail (src_x >= 0 && src_x + width <= pixbuf->width); - g_return_if_fail (src_y >= 0 && src_y + height <= pixbuf->height); + g_return_if_fail (src_x >= 0 && src_x + width <= gdk_pixbuf_get_width (pixbuf)); + g_return_if_fail (src_y >= 0 && src_y + height <= gdk_pixbuf_get_height (pixbuf)); /* Clip to the drawable; this is required for get_from_drawable() so * can't be done implicitly @@ -1460,7 +1461,7 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable, else real_drawable = GDK_PIXMAP_OBJECT (drawable)->impl; - if (pixbuf->has_alpha) + if (gdk_pixbuf_get_has_alpha (pixbuf)) { GdkVisual *visual = gdk_drawable_get_visual (drawable); void (*composite_func) (guchar *src_buf, @@ -1523,8 +1524,8 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable, dest_x + x0, dest_y + y0, xs0, ys0, width1, height1); - (*composite_func) (pixbuf->pixels + (src_y + y0) * pixbuf->rowstride + (src_x + x0) * 4, - pixbuf->rowstride, + (*composite_func) (gdk_pixbuf_get_pixels (pixbuf) + (src_y + y0) * gdk_pixbuf_get_rowstride (pixbuf) + (src_x + x0) * 4, + gdk_pixbuf_get_rowstride (pixbuf), (guchar*)image->mem + ys0 * image->bpl + xs0 * image->bpp, image->bpl, visual->byte_order, @@ -1551,10 +1552,10 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable, width, height); if (composited) - composite (pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 4, - pixbuf->rowstride, - composited->pixels, - composited->rowstride, + composite (gdk_pixbuf_get_pixels (pixbuf) + src_y * gdk_pixbuf_get_rowstride (pixbuf) + src_x * 4, + gdk_pixbuf_get_rowstride (pixbuf), + gdk_pixbuf_get_pixels (composited), + gdk_pixbuf_get_rowstride (composited), width, height); } } @@ -1566,26 +1567,26 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable, pixbuf = composited; } - if (pixbuf->n_channels == 4) + if (gdk_pixbuf_get_n_channels (pixbuf) == 4) { - guchar *buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 4; + guchar *buf = gdk_pixbuf_get_pixels (pixbuf) + src_y * gdk_pixbuf_get_rowstride (pixbuf) + src_x * 4; gdk_draw_rgb_32_image_dithalign (real_drawable, gc, dest_x, dest_y, width, height, dither, - buf, pixbuf->rowstride, + buf, gdk_pixbuf_get_rowstride (pixbuf), x_dither, y_dither); } else /* n_channels == 3 */ { - guchar *buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 3; + guchar *buf = gdk_pixbuf_get_pixels (pixbuf) + src_y * gdk_pixbuf_get_rowstride (pixbuf) + src_x * 3; gdk_draw_rgb_image_dithalign (real_drawable, gc, dest_x, dest_y, width, height, dither, - buf, pixbuf->rowstride, + buf, gdk_pixbuf_get_rowstride (pixbuf), x_dither, y_dither); } |