diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index ec63ea5375..f51b3517c0 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,11 @@ +2000-04-22 05:27:43 2000 Owen Taylor + + * gdk-pixbuf/pixops/pixops.c (pixops_scale_nearest): Properly + offset y coordinate accordining to render_y0. + + * gdk-pixbuf/gdk-pixbuf-scale.c: Properly handle nonzero + dest_x, dest_y. + 2000-04-22 James Henstridge * gdk-pixbuf.spec.in (%files): moved %{prefix}/bin/* from the main diff --git a/gdk-pixbuf/gdk-pixbuf-scale.c b/gdk-pixbuf/gdk-pixbuf-scale.c index 8b5a159e48..23c4ffa571 100644 --- a/gdk-pixbuf/gdk-pixbuf-scale.c +++ b/gdk-pixbuf/gdk-pixbuf-scale.c @@ -68,7 +68,8 @@ gdk_pixbuf_scale (const GdkPixbuf *src, offset_y = floor (offset_y + 0.5); pixops_scale (dest->pixels + dest_y * dest->rowstride + dest_x * dest->n_channels, - -offset_x, -offset_y, dest_width - offset_x, dest_height - offset_y, + dest_x - offset_x, dest_y - offset_y, + dest_x + dest_width - offset_x, dest_y + dest_height - offset_y, dest->rowstride, dest->n_channels, dest->has_alpha, src->pixels, src->width, src->height, src->rowstride, src->n_channels, src->has_alpha, @@ -118,7 +119,8 @@ gdk_pixbuf_composite (const GdkPixbuf *src, offset_x = floor (offset_x + 0.5); offset_y = floor (offset_y + 0.5); pixops_composite (dest->pixels + dest_y * dest->rowstride + dest_x * dest->n_channels, - -offset_x, -offset_y, dest_width - offset_x, dest_height - offset_y, + dest_x - offset_x, dest_y - offset_y, + dest_x + dest_width - offset_x, dest_y + dest_height - offset_y, dest->rowstride, dest->n_channels, dest->has_alpha, src->pixels, src->width, src->height, src->rowstride, src->n_channels, src->has_alpha, @@ -180,7 +182,8 @@ gdk_pixbuf_composite_color (const GdkPixbuf *src, offset_y = floor (offset_y + 0.5); pixops_composite_color (dest->pixels + dest_y * dest->rowstride + dest_x * dest->n_channels, - -offset_x, -offset_y, dest_width - offset_x, dest_height - offset_y, + dest_x - offset_x, dest_y - offset_y, + dest_x + dest_width - offset_x, dest_y + dest_height - offset_y, dest->rowstride, dest->n_channels, dest->has_alpha, src->pixels, src->width, src->height, src->rowstride, src->n_channels, src->has_alpha, diff --git a/gdk-pixbuf/pixops/pixops.c b/gdk-pixbuf/pixops/pixops.c index 040f1df6d0..d9592659d0 100644 --- a/gdk-pixbuf/pixops/pixops.c +++ b/gdk-pixbuf/pixops/pixops.c @@ -93,7 +93,7 @@ pixops_scale_nearest (guchar *dest_buf, for (i = 0; i < (render_y1 - render_y0); i++) { - const guchar *src = src_buf + ((i * y_step + y_step / 2) >> SCALE_SHIFT) * src_rowstride; + const guchar *src = src_buf + (((i + render_y0) * y_step + y_step / 2) >> SCALE_SHIFT) * src_rowstride; guchar *dest = dest_buf + i * dest_rowstride; x = render_x0 * x_step + x_step / 2;