viewport: fix croped full calculation error if transform set 90 or 270 15/185215/4 accepted/tizen/unified/20180727.135707 submit/tizen/20180727.051729
authorJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 27 Jul 2018 04:50:06 +0000 (13:50 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Fri, 27 Jul 2018 05:10:45 +0000 (05:10 +0000)
Change-Id: Iee795785e7513df4c72766e83b241944e62ec376
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/bin/e_comp_wl_viewport.c

index 38ed488..37a3b21 100644 (file)
@@ -1233,6 +1233,7 @@ _e_comp_wl_viewport_crop_by_parent(E_Viewport *viewport, Eina_Rectangle *parent,
    Eina_Rectangle crop;
    double rx, ry, rw, rh;
    int bw, bh;
+   int transform;
 
    PDB("dst(%d,%d %dx%d) parent(%d,%d %dx%d)", EINA_RECTANGLE_ARGS(dst), EINA_RECTANGLE_ARGS(parent));
 
@@ -1273,6 +1274,13 @@ _e_comp_wl_viewport_crop_by_parent(E_Viewport *viewport, Eina_Rectangle *parent,
    rw = (double)crop.w / dst->w;
    rh = (double)crop.h / dst->h;
 
+   transform = e_comp_wl_output_buffer_transform_get(viewport->ec);
+   if (transform % 2)
+     {
+        SWAP(rx, ry);
+        SWAP(rw, rh);
+     }
+
    crop.x += dst->x;
    crop.y += dst->y;
    *dst = crop;
@@ -1298,10 +1306,6 @@ _e_comp_wl_viewport_crop_by_parent(E_Viewport *viewport, Eina_Rectangle *parent,
    viewport->cropped_source.w = viewport->cropped_source.w * rw;
    viewport->cropped_source.h = viewport->cropped_source.h * rh;
 
-   _source_transform_to_surface(bw, bh,
-                                e_comp_wl_output_buffer_transform_get(viewport->ec), 1,
-                                &viewport->cropped_source, &viewport->cropped_source);
-
    vp->buffer.src_x = wl_fixed_from_int(viewport->cropped_source.x);
    vp->buffer.src_y = wl_fixed_from_int(viewport->cropped_source.y);
    vp->buffer.src_width = wl_fixed_from_int(viewport->cropped_source.w);