return EINA_TRUE;
}
+static Eina_Bool
+_e_hwc_window_queue_buffers_hand_over_validate(E_Hwc_Window_Queue *queue, E_Hwc_Window *hwc_window)
+{
+ E_Hwc_Window_Queue_Buffer *queue_buffer;
+ Eina_List *l;
+
+ EINA_LIST_FOREACH(queue->buffers, l, queue_buffer)
+ {
+ if (!queue_buffer->usable) continue;
+
+ if (queue_buffer->released)
+ return EINA_FALSE;
+ }
+
+ return EINA_TRUE;
+}
+
static void
_e_hwc_window_queue_cb_dequeueable(tbm_surface_queue_h surface_queue, void *data)
{
e_hwc_window_queue_user_unset(queue, queue->user);
}
}
+ else if (queue->state == E_HWC_WINDOW_QUEUE_STATE_SET_WAITING_BUFFER)
+ {
+ if (!_e_hwc_window_queue_buffers_hand_over_validate(queue, queue->user))
+ {
+ EHWQERR("fail to queue_buffers_hand_over_validate SET_WAITING_BUFFER",
+ (queue->user ? queue->user->ec : NULL), queue->hwc, queue);
+ e_hwc_window_queue_user_unset(queue, queue->user);
+ }
+ }
}
static void