Re: [Nautilus-list] Eel background speedup patch
- From: Ramiro Estrugo <ramiro fateware com>
- To: Alex Larsson <alexl redhat com>
- Cc: nautilus-list eazel com
- Subject: Re: [Nautilus-list] Eel background speedup patch
- Date: Tue, 05 Jun 2001 20:17:27 -0700
Ok. I looked at the patch and it looks good. I agree that the change
appears to not break binary compatibility, however we need to make sure
of that. From what I can tell the comment in header is indeed telling
the truth.
I think its ok to check this in.
-re
Alex Larsson wrote:
>
> On Fri, 1 Jun 2001, Alex Larsson wrote:
>
> > This patch fixes some bad performance with EelBackground where it renders
> > the whole widget area even when only a small rectangle was exposed.
>
> So, this patch didn't solve the whole issue. It broke when using non-aa
> mode. Here is a patch that solves this problem. It does change a public
> API entrypoint, but the header says "Only intended to be called by
> eel_background_canvas_group_draw".
>
> Can I check this in?
>
> ? background_fix.patch
> ? eel/changes.diff
> Index: eel/eel-background-canvas-group.c
> ===================================================================
> RCS file: /cvs/gnome/eel/eel/eel-background-canvas-group.c,v
> retrieving revision 1.5
> diff -u -p -r1.5 eel-background-canvas-group.c
> --- eel/eel-background-canvas-group.c 2001/04/04 07:51:33 1.5
> +++ eel/eel-background-canvas-group.c 2001/06/05 18:06:26
> @@ -180,7 +180,7 @@ eel_background_canvas_group_draw (GnomeC
> GTK_WIDGET (item->canvas)->allocation.width,
> GTK_WIDGET (item->canvas)->allocation.height);
>
> - eel_background_draw (background, drawable, gc, x, y, width, height);
> + eel_background_draw (background, drawable, gc, x, y, 0, 0, width, height);
>
> gdk_gc_unref (gc);
> }
> Index: eel/eel-background.c
> ===================================================================
> RCS file: /cvs/gnome/eel/eel/eel-background.c,v
> retrieving revision 1.5
> diff -u -p -r1.5 eel-background.c
> --- eel/eel-background.c 2001/06/01 23:16:53 1.5
> +++ eel/eel-background.c 2001/06/05 18:06:26
> @@ -554,9 +554,10 @@ eel_background_pre_draw (EelBackground *
>
> void
> eel_background_draw (EelBackground *background,
> - GdkDrawable *drawable, GdkGC *gc,
> - int drawable_x, int drawable_y,
> - int drawable_width, int drawable_height)
> + GdkDrawable *drawable, GdkGC *gc,
> + int src_x, int src_y,
> + int dest_x, int dest_y,
> + int dest_width, int dest_height)
> {
> int x, y;
> int x_canvas, y_canvas;
> @@ -579,22 +580,22 @@ eel_background_draw (EelBackground *back
>
> /* x & y are relative to the drawable
> */
> - for (y = 0; y < drawable_height; y += PIXBUF_HEIGHT) {
> - for (x = 0; x < drawable_width; x += PIXBUF_WIDTH) {
> + for (y = 0; y < dest_height; y += PIXBUF_HEIGHT) {
> + for (x = 0; x < dest_width; x += PIXBUF_WIDTH) {
>
> - width = MIN (drawable_width - x, PIXBUF_WIDTH);
> - height = MIN (drawable_height - y, PIXBUF_HEIGHT);
> + width = MIN (dest_width - x, PIXBUF_WIDTH);
> + height = MIN (dest_height - y, PIXBUF_HEIGHT);
>
> - x_canvas = drawable_x + x;
> - y_canvas = drawable_y + y;
> + x_canvas = src_x + x;
> + y_canvas = src_y + y;
>
> canvas_buf_from_pixbuf (&buffer, pixbuf, x_canvas, y_canvas, width, height);
> eel_background_draw_aa (background, &buffer);
> gdk_pixbuf_render_to_drawable (pixbuf, drawable, gc,
> 0, 0,
> - x_canvas, y_canvas,
> + dest_x + x, dest_y + y,
> width, height,
> - GDK_RGB_DITHER_MAX, x_canvas, y_canvas);
> + GDK_RGB_DITHER_MAX, dest_x + x, dest_y + y);
> }
> }
>
> @@ -609,7 +610,10 @@ eel_background_draw_to_drawable (EelBack
> int entire_width, int entire_height)
> {
> eel_background_pre_draw (background, entire_width, entire_height);
> - eel_background_draw (background, drawable, gc, drawable_x, drawable_y, drawable_width, drawable_height);
> + eel_background_draw (background, drawable, gc,
> + drawable_x, drawable_y,
> + drawable_x, drawable_y,
> + drawable_width, drawable_height);
> }
>
> void
> Index: eel/eel-background.h
> ===================================================================
> RCS file: /cvs/gnome/eel/eel/eel-background.h,v
> retrieving revision 1.4
> diff -u -p -r1.4 eel-background.h
> --- eel/eel-background.h 2001/04/04 07:51:33 1.4
> +++ eel/eel-background.h 2001/06/05 18:06:26
> @@ -100,10 +100,12 @@ void eel_backgrou
> void eel_background_draw (EelBackground *background,
> GdkDrawable *drawable,
> GdkGC *gc,
> - int drawable_x,
> - int drawable_y,
> - int drawable_width,
> - int drawable_height);
> + int src_x,
> + int src_y,
> + int dest_x,
> + int dest_y,
> + int dest_width,
> + int dest_height);
> /* For updating the canvas, aa case. Note: eel_background_pre_draw
> * must have been previously called. Only intended to be called by
> * eel_background_canvas_group_render.
>
> _______________________________________________
> Nautilus-list mailing list
> Nautilus-list lists eazel com
> http://lists.eazel.com/mailman/listinfo/nautilus-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]