e_hwc_window_queue: use size of buffer when to compare queue with client 10/251510/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 12 Jan 2021 09:23:20 +0000 (18:23 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Wed, 20 Jan 2021 07:52:35 +0000 (16:52 +0900)
comparing buffer and queue is better way

Change-Id: Ia71e443b908d9182ec0d7e68df7317e464240a97

src/bin/e_hwc_window_queue.c

index 54d3407..76d5ac1 100644 (file)
@@ -849,9 +849,8 @@ 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;
+   E_Comp_Wl_Buffer *buffer;
 
    if (eina_list_data_find(queue->user_pending_set, hwc_window) == hwc_window)
      _e_hwc_window_queue_user_pending_set_remove(queue, hwc_window);
@@ -863,22 +862,17 @@ _e_hwc_window_queue_prepare_set(E_Hwc_Window_Queue *queue, E_Hwc_Window *hwc_win
         return EINA_FALSE;
      }
 
-   transform = e_comp_wl_output_buffer_transform_get(ec);
-   if ((transform == WL_OUTPUT_TRANSFORM_90) || (transform == WL_OUTPUT_TRANSFORM_270))
+   buffer = _comp_wl_buffer_get(ec);
+   if (!buffer)
      {
-        w = ec->h;
-        h = ec->w;
-     }
-   else
-     {
-        w = ec->w;
-        h = ec->h;
+        EHWQERR("client buffer isn't attached", ec, queue->hwc, queue);
+        return EINA_FALSE;
      }
 
-   if ((queue->width != w) || (queue->height != h))
+   if ((queue->width != buffer->w) || (queue->height != buffer->h))
      {
-        EHWQERR("size mismatch queue(%dx%d) client(%dx%d)",
-                ec, queue->hwc, queue, queue->width, queue->height, w, h);
+        EHWQERR("size mismatch queue(%dx%d) client buffer(%dx%d)",
+                ec, queue->hwc, queue, queue->width, queue->height, buffer->w, buffer->h);
         return EINA_FALSE;
      }