[gimp] Bug 735810 - performance shrinkage of Paths tool
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 735810 - performance shrinkage of Paths tool
- Date: Sun, 24 Jan 2016 00:05:52 +0000 (UTC)
commit 6cf8bda49b02032d2d0c7e7b5f0d219f7e62fd8c
Author: Massimo Valentini <mvalentini src gnome org>
Date: Sat Sep 5 10:04:33 2015 +0200
Bug 735810 - performance shrinkage of Paths tool
In gimp_display_shell_expose_region(), invalidate each rect rather
than rebuilding the cairo_region_t as GdkRegion and then invalidating
the entire GdkRegion. Improves performance for tools that invalidate
complex regions.
app/display/gimpdisplayshell-expose.c | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-expose.c b/app/display/gimpdisplayshell-expose.c
index 710e876..337e198 100644
--- a/app/display/gimpdisplayshell-expose.c
+++ b/app/display/gimpdisplayshell-expose.c
@@ -42,7 +42,7 @@ void
gimp_display_shell_expose_region (GimpDisplayShell *shell,
cairo_region_t *region)
{
- GdkRegion *gdk_region;
+ GdkWindow *window;
gint n_rectangles;
gint i;
@@ -52,7 +52,7 @@ gimp_display_shell_expose_region (GimpDisplayShell *shell,
if (! gtk_widget_get_realized (shell->canvas))
return;
- gdk_region = gdk_region_new ();
+ window = gtk_widget_get_window (shell->canvas);
n_rectangles = cairo_region_num_rectangles (region);
for (i = 0; i < n_rectangles; i++)
@@ -61,12 +61,10 @@ gimp_display_shell_expose_region (GimpDisplayShell *shell,
cairo_region_get_rectangle (region, i, &rectangle);
- gdk_region_union_with_rect (gdk_region, (GdkRectangle *) &rectangle);
+ gdk_window_invalidate_rect (window,
+ (GdkRectangle *) &rectangle,
+ TRUE);
}
-
- gdk_window_invalidate_region (gtk_widget_get_window (shell->canvas),
- gdk_region, TRUE);
- gdk_region_destroy (gdk_region);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]