E_HWC_WINDOW_RESTRICTION_BLEND_ALPHA,
E_HWC_WINDOW_RESTRICTION_BLEND_EQUATION,
E_HWC_WINDOW_RESTRICTION_ZONE,
+ E_HWC_WINDOW_RESTRICTION_QUEUE_UNSET_WAITING,
} E_Hwc_Window_Restriction;
static Eina_Bool ehw_trace = EINA_FALSE;
goto finish;
}
+ if (hwc_window->queue_unset_waiting)
+ {
+ restriction = E_HWC_WINDOW_RESTRICTION_QUEUE_UNSET_WAITING;
+ available = EINA_FALSE;
+ goto finish;
+ }
+
finish:
hwc_window->restriction = restriction;
return "blend equation";
case E_HWC_WINDOW_RESTRICTION_ZONE:
return "zone";
+ case E_HWC_WINDOW_RESTRICTION_QUEUE_UNSET_WAITING:
+ return "queue unset waiting";
default:
return "UNKNOWN";
}
E_Object_Delfn *zone_delfn;
Evas_Object *below_transparent_obj;
+
+ Eina_Bool queue_unset_waiting;
};
struct _E_Hwc_Window_Target
_e_hwc_window_queue_buffers_retrieve(queue);
queue->state = E_HWC_WINDOW_QUEUE_STATE_UNSET_WAITING;
+ hwc_window->queue_unset_waiting = EINA_TRUE;
EHWQINF("Unset Waiting user ehw:%p - {%s}",
hwc_window->ec, queue->hwc, queue, hwc_window,
(queue->user->ec ? queue->user->ec->icccm.title : "UNKNOWN"));
/* unset the hwc_window from the queue */
+ queue->user->queue_unset_waiting = EINA_FALSE;
e_hwc_window_unref(queue->user);
queue->user = NULL;