}
static void
+_e_hwc_window_unkown_queue_release(tbm_surface_h tsurface)
+{
+ Eina_Iterator *it;
+ E_Hwc_Window_Queue *queue;
+ E_Hwc_Window_Queue_Buffer *queue_buffer;
+
+ it = eina_hash_iterator_data_new(_hwc_winq_mgr->hwc_winq_hash);
+ if (!it) return;
+
+ EINA_ITERATOR_FOREACH(it, queue)
+ {
+ queue_buffer = e_hwc_window_queue_buffer_find(queue, tsurface);
+ if (!queue_buffer) return;
+
+ if (!queue_buffer->acquired && queue_buffer->dequeued)
+ e_hwc_window_queue_buffer_release(queue, queue_buffer);
+ }
+
+ eina_iterator_free(it);
+}
+
+static void
_e_hwc_window_queue_cb_buffer_change(void *data, E_Client *ec)
{
E_Hwc_Window *hwc_window = NULL;
E_Comp_Wl_Buffer *comp_buffer;
- E_Hwc_Window_Queue_Buffer *queue_buffer;
uint32_t flags = 0;
tbm_surface_h tsurface;
return;
tsurface = _e_hwc_window_queue_backup_buffer_set(hwc_window, EINA_FALSE);
- if (tsurface && hwc_window->queue)
- {
- queue_buffer = e_hwc_window_queue_buffer_find(hwc_window->queue, tsurface);
- if (queue_buffer)
- {
- if (!queue_buffer->acquired && queue_buffer->dequeued)
- e_hwc_window_queue_buffer_release(hwc_window->queue, queue_buffer);
- }
- }
+ if (tsurface)
+ _e_hwc_window_unkown_queue_release(tsurface);
}
void