compositor: split weston_surface_damage_below()
authorPekka Paalanen <ppaalanen@gmail.com>
Wed, 8 Feb 2012 12:49:37 +0000 (14:49 +0200)
committerPekka Paalanen <ppaalanen@gmail.com>
Fri, 10 Feb 2012 13:47:55 +0000 (15:47 +0200)
Extract the core into a function that does not call
weston_surface_update_transform() or schedule repaint.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
src/compositor.c

index 1545990..1c35585 100644 (file)
@@ -231,6 +231,22 @@ weston_surface_set_color(struct weston_surface *surface,
 }
 
 static void
+weston_surface_damage_below_noupdate(struct weston_surface *surface)
+{
+       struct weston_surface *below;
+
+       if (surface->output == NULL)
+               return;
+
+       if (surface->link.next == &surface->compositor->surface_list)
+               return;
+
+       below = container_of(surface->link.next, struct weston_surface, link);
+       pixman_region32_union(&below->damage, &below->damage,
+                             &surface->transform.boundingbox);
+}
+
+static void
 surface_compute_bbox(struct weston_surface *surface, int32_t sx, int32_t sy,
                     int32_t width, int32_t height,
                     pixman_region32_t *bbox)
@@ -429,20 +445,8 @@ weston_surface_damage(struct weston_surface *surface)
 WL_EXPORT void
 weston_surface_damage_below(struct weston_surface *surface)
 {
-       struct weston_surface *below;
-
-       if (surface->output == NULL)
-               return;
-
-       if (surface->link.next == &surface->compositor->surface_list)
-               return;
-
-       below = container_of(surface->link.next, struct weston_surface, link);
-
        weston_surface_update_transform(surface);
-       pixman_region32_union(&below->damage, &below->damage,
-                             &surface->transform.boundingbox);
-
+       weston_surface_damage_below_noupdate(surface);
        weston_compositor_schedule_repaint(surface->compositor);
 }