static void
_e_hwc_window_unkown_queue_release(tbm_surface_h tsurface)
{
- E_Hwc_Window_Queue_Manager *hwc_winq_mgr = NULL;
-
- hwc_winq_mgr = _hwc_winq_mgr;
- EINA_SAFETY_ON_NULL_RETURN(hwc_winq_mgr);
-
- eina_hash_foreach(hwc_winq_mgr->hwc_winq_hash,
+ eina_hash_foreach(_hwc_winq_mgr->hwc_winq_hash,
_e_hwc_window_release_hash_fn,
tsurface);
}
#endif
+
static void
_e_hwc_window_queue_cb_buffer_change(void *data, E_Client *ec)
{
static void
_e_hwc_window_queue_destroy(E_Hwc_Window_Queue *queue)
{
- E_Hwc_Window_Queue_Manager *hwc_winq_mgr = NULL;
E_Hwc_Window_Queue_Buffer *queue_buffer = NULL;
- hwc_winq_mgr = _hwc_winq_mgr;
- if (hwc_winq_mgr)
- eina_hash_del(hwc_winq_mgr->hwc_winq_hash, queue->tqueue, queue);
+ if (_hwc_winq_mgr)
+ eina_hash_del(_hwc_winq_mgr->hwc_winq_hash, queue->tqueue, queue);
EHWQINF("Destroy tq:%p", NULL, queue, queue->tqueue);
static E_Hwc_Window_Queue *
_e_hwc_window_queue_create(tbm_surface_queue_h tqueue)
{
- E_Hwc_Window_Queue_Manager *hwc_winq_mgr = NULL;
E_Hwc_Window_Queue *queue = NULL;
E_Hwc_Window_Queue_Buffer *queue_buffer = NULL;
Eina_List *dequeued_tsurface = NULL;
tbm_surface_h *surfaces = NULL;
int size = 0, get_size = 0, i = 0;
- hwc_winq_mgr = _hwc_winq_mgr;
- EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_winq_mgr, NULL);
-
queue = E_NEW(E_Hwc_Window_Queue, 1);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, NULL);
EINA_SAFETY_ON_FALSE_GOTO(tsq_err == TBM_SURFACE_QUEUE_ERROR_NONE, fail);
queue->tqueue = tqueue;
- eina_hash_add(hwc_winq_mgr->hwc_winq_hash, tqueue, queue);
wl_signal_init(&queue->destroy_signal);
static E_Hwc_Window_Queue *
_e_hwc_window_queue_get(E_Hwc_Window *hwc_window)
{
- E_Hwc_Window_Queue_Manager *hwc_winq_mgr = NULL;
E_Hwc_Window_Queue *queue = NULL;
tbm_surface_queue_h tqueue = NULL;
- hwc_winq_mgr = _hwc_winq_mgr;
- EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_winq_mgr, NULL);
-
tqueue = _e_hwc_window_tqueue_get(hwc_window);
EINA_SAFETY_ON_NULL_RETURN_VAL(tqueue, NULL);
- queue = eina_hash_find(hwc_winq_mgr->hwc_winq_hash, tqueue);
+ queue = eina_hash_find(_hwc_winq_mgr->hwc_winq_hash, tqueue);
if (!queue)
{
queue = _e_hwc_window_queue_create(tqueue);
EINA_SAFETY_ON_FALSE_RETURN_VAL(queue, NULL);
+
+ eina_hash_add(_hwc_winq_mgr->hwc_winq_hash, tqueue, queue);
}
return queue;
EINTERN Eina_Bool
e_hwc_window_queue_init(E_Hwc *hwc)
{
- E_Hwc_Window_Queue_Manager *hwc_winq_mgr = NULL;
+ _hwc_winq_mgr = E_NEW(E_Hwc_Window_Queue_Manager, 1);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, EINA_FALSE);
- hwc_winq_mgr = E_NEW(E_Hwc_Window_Queue_Manager, 1);
- EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_winq_mgr, EINA_FALSE);
-
- hwc_winq_mgr->hwc_winq_hash = eina_hash_pointer_new(NULL);
+ _hwc_winq_mgr->hwc_winq_hash = eina_hash_pointer_new(NULL);
E_HWC_WINDOW_HOOK_APPEND(hwc_window_queue_window_hooks, E_HWC_WINDOW_HOOK_ACCEPTED_STATE_CHANGE,
_e_hwc_window_queue_cb_accepted_state_change, NULL);
E_COMP_WL_HOOK_APPEND(hwc_window_queue_comp_wl_hooks, E_COMP_WL_HOOK_BUFFER_CHANGE,
_e_hwc_window_queue_cb_buffer_change, NULL);
- _hwc_winq_mgr = hwc_winq_mgr;
-
return EINA_TRUE;
}
EINTERN void
e_hwc_window_queue_deinit(void)
{
- E_Hwc_Window_Queue_Manager *hwc_winq_mgr = NULL;
-
if (!_hwc_winq_mgr) return;
- hwc_winq_mgr = _hwc_winq_mgr;
-
E_FREE_LIST(hwc_window_queue_window_hooks, e_hwc_window_hook_del);
E_FREE_LIST(hwc_window_queue_comp_wl_hooks, e_comp_wl_hook_del);
- E_FREE_FUNC(hwc_winq_mgr->hwc_winq_hash, eina_hash_free);
+ E_FREE_FUNC(_hwc_winq_mgr->hwc_winq_hash, eina_hash_free);
- E_FREE(hwc_winq_mgr);
+ E_FREE(_hwc_winq_mgr);
_hwc_winq_mgr = NULL;
}
EINTERN Eina_Bool
e_hwc_window_queue_target_set(E_Hwc_Window_Queue *queue, Eina_Bool target)
{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, EINA_FALSE);
if (queue->is_target == target) return EINA_TRUE;
struct wayland_tbm_client_queue *cqueue = NULL;
E_Hwc_Window_Queue *queue = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, NULL);
EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_window, NULL);
if (hwc_window->is_target)
EINTERN void
e_hwc_window_queue_user_unset(E_Hwc_Window_Queue *queue, E_Hwc_Window *hwc_window)
{
+ EINA_SAFETY_ON_NULL_RETURN(_hwc_winq_mgr);
EINA_SAFETY_ON_NULL_RETURN(queue);
if ((hwc_window) &&
E_Hwc_Window_Queue_Buffer *queue_buffer = NULL;
Eina_List *l = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(tsurface, EINA_FALSE);
EINTERN Eina_Bool
e_hwc_window_queue_can_dequeue(E_Hwc_Window_Queue *queue)
{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, EINA_FALSE);
+
if (!queue->tqueue) return EINA_FALSE;
if (tbm_surface_queue_can_dequeue(queue->tqueue, 0))
E_Hwc_Window_Queue_Buffer *queue_buffer = NULL;
E_Hwc_Window *user = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, NULL);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, NULL);
if (!queue->tqueue) return NULL;
tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
E_Hwc_Window *user = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue_buffer, EINA_FALSE);
E_Hwc_Window_Queue_Buffer *queue_buffer = NULL;
E_Hwc_Window *user = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, NULL);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, NULL);
if (!queue->tqueue) return NULL;
tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
E_Hwc_Window *user = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_hwc_winq_mgr, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(queue_buffer, EINA_FALSE);