Add a shortcut if the window and the current clip_region doesn't overlap.
2001-02-13 Alexander Larsson <alla@lysator.liu.se> * 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.
This commit is contained in:
committed by
Alexander Larsson
parent
941378639a
commit
73c5da419c
@ -2,6 +2,7 @@
|
||||
#include "gdkprivate-fb.h"
|
||||
#include "mi.h"
|
||||
#include <string.h>
|
||||
#include <gdkregion-generic.h>
|
||||
|
||||
#include <pango/pangoft2.h>
|
||||
#include <freetype/ftglyph.h>
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user