From: Pekka Paalanen <[email protected]>

Move code into a new helper function. No changes.

Signed-off-by: Pekka Paalanen <[email protected]>
---
 src/pixman-renderer.c | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c
index 2769168..459b20a 100644
--- a/src/pixman-renderer.c
+++ b/src/pixman-renderer.c
@@ -299,6 +299,22 @@ pixman_renderer_compute_transform(pixman_transform_t 
*transform_out,
 }
 
 static void
+region_intersect_only_translation(pixman_region32_t *result_global,
+                                 pixman_region32_t *global,
+                                 pixman_region32_t *surf,
+                                 struct weston_view *view)
+{
+       float view_x, view_y;
+
+       /* Convert from surface to global coordinates */
+       pixman_region32_copy(result_global, surf);
+       weston_view_to_global_float(view, 0, 0, &view_x, &view_y);
+       pixman_region32_translate(result_global, (int)view_x, (int)view_y);
+
+       pixman_region32_intersect(result_global, result_global, global);
+}
+
+static void
 repaint_region(struct weston_view *ev, struct weston_output *output,
               pixman_region32_t *region, pixman_region32_t *surf_region,
               pixman_op_t pixman_op)
@@ -309,7 +325,6 @@ repaint_region(struct weston_view *ev, struct weston_output 
*output,
        struct pixman_output_state *po = get_output_state(output);
        struct weston_buffer_viewport *vp = &ev->surface->buffer_viewport;
        pixman_region32_t final_region;
-       float view_x, view_y;
        pixman_transform_t transform;
        pixman_image_t *mask_image;
        pixman_color_t mask = { 0, };
@@ -321,18 +336,8 @@ repaint_region(struct weston_view *ev, struct 
weston_output *output,
         */
        pixman_region32_init(&final_region);
        if (surf_region) {
-               pixman_region32_copy(&final_region, surf_region);
-
-               /* Convert from surface to global coordinates */
-               if (!ev->transform.enabled) {
-                       pixman_region32_translate(&final_region, 
ev->geometry.x, ev->geometry.y);
-               } else {
-                       weston_view_to_global_float(ev, 0, 0, &view_x, &view_y);
-                       pixman_region32_translate(&final_region, (int)view_x, 
(int)view_y);
-               }
-
-               /* We need to paint the intersection */
-               pixman_region32_intersect(&final_region, &final_region, region);
+               region_intersect_only_translation(&final_region, region,
+                                                 surf_region, ev);
        } else {
                /* If there is no surface region, just use the global region */
                pixman_region32_copy(&final_region, region);
-- 
2.0.5

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to