From 73c5da419ca1a27d5c05337efb2415f1ee6f08d7 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 13 Feb 2001 16:22:11 +0000 Subject: [PATCH] Add a shortcut if the window and the current clip_region doesn't overlap. 2001-02-13 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): Add a shortcut if the window and the current clip_region doesn't overlap. This is needed when there are a lot of windows in a window. The layout test in testgtk is a good test. * gdk/linux-fb/gdkwindow-fb.c: Whitespace fix. --- ChangeLog | 10 ++++++++++ ChangeLog.pre-2-0 | 10 ++++++++++ ChangeLog.pre-2-10 | 10 ++++++++++ ChangeLog.pre-2-2 | 10 ++++++++++ ChangeLog.pre-2-4 | 10 ++++++++++ ChangeLog.pre-2-6 | 10 ++++++++++ ChangeLog.pre-2-8 | 10 ++++++++++ gdk/linux-fb/gdkdrawable-fb2.c | 9 +++++++++ gdk/linux-fb/gdkwindow-fb.c | 1 - 9 files changed, 79 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ea0de33156..b431cdf6df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index ea0de33156..b431cdf6df 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index ea0de33156..b431cdf6df 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index ea0de33156..b431cdf6df 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index ea0de33156..b431cdf6df 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index ea0de33156..b431cdf6df 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index ea0de33156..b431cdf6df 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +2001-02-13 Alexander Larsson + + * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): + Add a shortcut if the window and the current clip_region doesn't + overlap. This is needed when there are a lot of windows in a + window. The layout test in testgtk is a good test. + + * gdk/linux-fb/gdkwindow-fb.c: + Whitespace fix. + 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size diff --git a/gdk/linux-fb/gdkdrawable-fb2.c b/gdk/linux-fb/gdkdrawable-fb2.c index a19eac803e..54bc099d38 100644 --- a/gdk/linux-fb/gdkdrawable-fb2.c +++ b/gdk/linux-fb/gdkdrawable-fb2.c @@ -2,6 +2,7 @@ #include "gdkprivate-fb.h" #include "mi.h" #include +#include #include #include @@ -398,6 +399,14 @@ gdk_fb_clip_region (GdkDrawable *drawable, continue; impl_private = GDK_DRAWABLE_IMPL_FBDATA(cur->data); + + /* This shortcut is really necessary for performance when there are a lot of windows */ + if (impl_private->llim_x >= real_clip_region->extents.x2 || + impl_private->lim_x <= real_clip_region->extents.x1 || + impl_private->llim_y >= real_clip_region->extents.y2 || + impl_private->lim_y <= real_clip_region->extents.y1) + continue; + draw_rect.x = impl_private->llim_x; draw_rect.y = impl_private->llim_y; draw_rect.width = impl_private->lim_x - draw_rect.x; diff --git a/gdk/linux-fb/gdkwindow-fb.c b/gdk/linux-fb/gdkwindow-fb.c index e6c731d079..8abe98cb56 100644 --- a/gdk/linux-fb/gdkwindow-fb.c +++ b/gdk/linux-fb/gdkwindow-fb.c @@ -1041,7 +1041,6 @@ gdk_fb_window_move_resize (GdkWindow *window, send_expose_events = FALSE; if (private->mapped && send_expose_events) - old_region = gdk_fb_clip_region (GDK_DRAWABLE_IMPL(window), NULL, TRUE, FALSE, FALSE); dx = x - private->x;