return NULL;
}
- e_comp_object_hwc_update_set(ec->frame, EINA_FALSE);
+ //e_comp_object_hwc_update_set(ec->frame, EINA_FALSE);
return tsurface;
}
hwc_window->cursor_tsurface = tsurface;
+ /* to set the hwc_window_cursor_tsurface to the hwc_window->tsurface */
e_comp_object_hwc_update_set(ec->frame, EINA_TRUE);
return EINA_TRUE;
return hwc_window->tsurface;
#endif
- e_comp_object_hwc_update_set(ec->frame, EINA_FALSE);
+ //e_comp_object_hwc_update_set(ec->frame, EINA_FALSE);
if (!_e_hwc_window_cursor_surface_refresh(hwc_window, pointer))
{
error = tdm_hwc_window_set_buffer(hwc_window->thwc_window, hwc_window->tsurface);
EINA_SAFETY_ON_TRUE_RETURN_VAL(error != TDM_ERROR_NONE, EINA_FALSE);
- if (hwc_window->update_exist)
- ELOGF("HWC-WINS", " ehw:%p sets ts:%10p ------- {%25s}, state:%s, zpos:%d, deleted:%s",
- hwc_window->ec ? hwc_window->ec->pixmap : NULL, hwc_window->ec,
- hwc_window, hwc_window->tsurface, hwc_window->ec ? hwc_window->ec->icccm.title : "UNKNOWN",
- e_hwc_window_state_string_get(hwc_window->state),
- hwc_window->zpos, hwc_window->is_deleted ? "yes" : "no");
-
return EINA_TRUE;
}
hwc_window->cursor_tsurface = NULL;
}
+ if (hwc_window->tsurface == NULL) return EINA_TRUE;
+
hwc_window->tsurface = NULL;
}
else
tsurface = e_comp_wl_video_hwc_widow_surface_get(hwc_window);
if (!tsurface)
{
- ELOGF("HWC-WINS", " ehw:%p no buffer yet -- {%25s}, state:%s, zpos:%d, deleted:%s",
+ ELOGF("HWC-WINS", " ehw:%p no video buffer yet -- {%25s}, state:%s, zpos:%d, deleted:%s (Video)",
hwc_window->ec ? hwc_window->ec->pixmap : NULL, hwc_window->ec,
hwc_window, hwc_window->ec ? hwc_window->ec->icccm.title : "UNKNOWN",
e_hwc_window_state_string_get(hwc_window->state),
hwc_window->zpos, hwc_window->is_deleted ? "yes" : "no");
return EINA_FALSE;
}
+ hwc_window->update_exist = EINA_TRUE;
}
else if (e_hwc_window_is_cursor(hwc_window))
{
hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec, hwc_window);
return EINA_FALSE;
}
+ if (!e_comp_object_hwc_update_exists(hwc_window->ec->frame)) return EINA_TRUE;
+
+ {
+ e_comp_object_hwc_update_set(hwc_window->ec->frame, EINA_FALSE);
+ hwc_window->update_exist = EINA_TRUE;
+
+ ELOGF("HWC-WINS", " ehw:%p sets ts:%10p ------- {%25s}, state:%s, zpos:%d, deleted:%s (Cusor)",
+ hwc_window->ec ? hwc_window->ec->pixmap : NULL, hwc_window->ec,
+ hwc_window, hwc_window->tsurface, hwc_window->ec ? hwc_window->ec->icccm.title : "UNKNOWN",
+ e_hwc_window_state_string_get(hwc_window->state),
+ hwc_window->zpos, hwc_window->is_deleted ? "yes" : "no");
+ }
}
else
{
hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec, hwc_window);
return EINA_FALSE;
}
- }
+ if (tsurface == hwc_window->tsurface) return EINA_TRUE;
- /* exist tsurface for update hwc_window */
- hwc_window->tsurface = tsurface;
- }
+ hwc_window->update_exist = EINA_TRUE;
- if (hwc_window->tsurface != tsurface)
- {
- ELOGF("HWC-WINS", " ehw:%p sets ts:%10p ------- {%25s}, state:%s, zpos:%d, deleted:%s",
- hwc_window->ec ? hwc_window->ec->pixmap : NULL, hwc_window->ec,
- hwc_window, hwc_window->tsurface, hwc_window->ec ? hwc_window->ec->icccm.title : "UNKNOWN",
- e_hwc_window_state_string_get(hwc_window->state),
- hwc_window->zpos, hwc_window->is_deleted ? "yes" : "no");
+ ELOGF("HWC-WINS", " ehw:%p sets ts:%10p ------- {%25s}, state:%s, zpos:%d, deleted:%s (Window)",
+ hwc_window->ec ? hwc_window->ec->pixmap : NULL, hwc_window->ec,
+ hwc_window, hwc_window->tsurface, hwc_window->ec ? hwc_window->ec->icccm.title : "UNKNOWN",
+ e_hwc_window_state_string_get(hwc_window->state),
+ hwc_window->zpos, hwc_window->is_deleted ? "yes" : "no");
+ }
}
- hwc_window->update_exist = EINA_TRUE;
+ hwc_window->output_hwc->update_changes = EINA_TRUE;
+
+ /* exist tsurface for update hwc_window */
+ hwc_window->tsurface = tsurface;
return EINA_TRUE;
}
output_hwc->hwc_mode = hwc_mode;
}
+ if (hwc_mode == E_OUTPUT_HWC_MODE_NONE) output_hwc->update_changes = EINA_TRUE;
+
ret = EINA_TRUE;
#if DBG_EVALUATE
{
output_hwc->need_commit = EINA_FALSE;
target_window->update_exist = EINA_FALSE;
+ output_hwc->update_changes = EINA_FALSE;
#if DBG_EVALUATE
ELOGF("HWC-WINS", " No available surface on target_window.", NULL, NULL);
#endif
{
output_hwc->need_commit = EINA_TRUE;
target_window->update_exist = EINA_TRUE;
+ output_hwc->update_changes = EINA_TRUE;
#if DBG_EVALUATE
ELOGF("HWC-WINS", " Available surface on target_window.", NULL, NULL);
#endif
}
}
- if (output_hwc->need_commit)
+ if (output_hwc->update_changes)
+ //if (output_hwc->need_commit || output_hwc->update_changes)
{
+ output_hwc->update_changes = EINA_FALSE;
+
EINA_LIST_FOREACH(output_hwc->hwc_windows, l, hwc_window)
{
_e_output_hwc_windows_prepare_commit(output, hwc_window);