GLint filter;
int n;
- weston_surface_update_transform(es);
-
pixman_region32_init(&repaint);
pixman_region32_intersect(&repaint, &es->transform.boundingbox,
&output->region);
if (device->sprite == NULL)
return;
- weston_surface_update_transform(device->sprite);
-
pixman_region32_init(&cursor_region);
pixman_region32_intersect(&cursor_region,
&device->sprite->transform.boundingbox,
pixman_region32_init(&overlap);
wl_list_for_each(es, &ec->surface_list, link) {
+ /* Update surface transform now to avoid calling it ever
+ * again from the repaint sub-functions. */
weston_surface_update_transform(es);
pixman_region32_init(&surface_overlap);
weston_matrix_init(&surface->rotation.rotation);
weston_matrix_init(&rotate->rotation);
}
+
+ /* Repaint implies weston_surface_update_transform(), which
+ * lazily applies the damage due to rotation update.
+ */
+ weston_compositor_schedule_repaint(surface->surface->compositor);
}
static void