From: Changyeon Lee Date: Wed, 26 Feb 2020 06:26:47 +0000 (+0900) Subject: e_hwc_window_queue: consider output transform in queue_set X-Git-Tag: submit/tizen/20200304.075907~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8a547332a197497b3c93a21af8c4d9e6a8da0486;p=platform%2Fupstream%2Fenlightenment.git e_hwc_window_queue: consider output transform in queue_set Change-Id: I3a131d96899e83e867c2a5113f68c56052b1284b --- diff --git a/src/bin/e_hwc_window_queue.c b/src/bin/e_hwc_window_queue.c index 020a1f2338..1c81654a77 100644 --- a/src/bin/e_hwc_window_queue.c +++ b/src/bin/e_hwc_window_queue.c @@ -843,7 +843,9 @@ static Eina_Bool _e_hwc_window_queue_prepare_set(E_Hwc_Window_Queue *queue, E_Hwc_Window *hwc_window) { struct wayland_tbm_client_queue *cqueue = NULL; + enum wl_output_transform transform = WL_OUTPUT_TRANSFORM_NORMAL; E_Client *ec = NULL; + int w, h; if (eina_list_data_find(queue->user_pending_set, hwc_window) == hwc_window) _e_hwc_window_queue_user_pending_set_remove(queue, hwc_window); @@ -855,10 +857,22 @@ _e_hwc_window_queue_prepare_set(E_Hwc_Window_Queue *queue, E_Hwc_Window *hwc_win return EINA_FALSE; } - if ((queue->width != ec->w) || (queue->height != ec->h)) + transform = e_comp_wl_output_buffer_transform_get(ec); + if ((transform == WL_OUTPUT_TRANSFORM_90) || (transform == WL_OUTPUT_TRANSFORM_270)) + { + w = ec->h; + h = ec->w; + } + else + { + w = ec->w; + h = ec->h; + } + + if ((queue->width != w) || (queue->height != h)) { EHWQERR("size mismatch queue(%dx%d) client(%dx%d)", - ec, queue->hwc, queue, queue->width, queue->height, ec->w, ec->h); + ec, queue->hwc, queue, queue->width, queue->height, w, h); return EINA_FALSE; }