e_comp_wl_subsurface_check_below_bg_rectangle(ec);
+ if ((ec->comp_data->video_client) &&
+ ((buffer) &&
+ (buffer->type == E_COMP_WL_BUFFER_TYPE_VIDEO)) &&
+ (e_comp->wl_comp_data->available_hw_accel.underlay))
+ {
+ e_pixmap_image_clear(ec->pixmap, 1);
+ }
+
state->buffer_viewport.changed = 0;
if (buffer &&
ec->comp_data->layer = p_cdata->layer;
ec->comp_data->fetch.win_type = p_cdata->fetch.win_type;
ec->comp_data->fetch.layer = p_cdata->fetch.layer;
+ ec->comp_data->video_client = p_cdata->video_client;
e_pixmap_cdata_set(ec->pixmap, ec->comp_data);
Eina_Bool ignored;
_e_comp_wl_surface_state_commit(ec, &ec->comp_data->pending);
- if ((!e_comp_object_damage_exists(ec->frame)) &&
- (!e_client_video_hw_composition_check(ec)))
- e_pixmap_image_clear(ec->pixmap, 1);
+ if (!e_comp_object_damage_exists(ec->frame))
+ {
+ if ((ec->comp_data->video_client) ||
+ (!e_client_video_hw_composition_check(ec)))
+ e_pixmap_image_clear(ec->pixmap, 1);
+ }
ignored = ec->ignored;
}
else
{
- if ((ec) && (e_client_video_hw_composition_check(ec)))
+ if ((ec) &&
+ ((ec->comp_data->video_client) || (e_client_video_hw_composition_check(ec))))
{
buffer->type = E_COMP_WL_BUFFER_TYPE_VIDEO;
buffer->w = buffer->h = 1;
if (!tbm_surf)
goto err;
- if ((ec) && (e_client_video_hw_composition_check(ec)))
+ if ((ec) &&
+ ((ec->comp_data->video_client) || (e_client_video_hw_composition_check(ec))))
{
buffer->type = E_COMP_WL_BUFFER_TYPE_VIDEO;
buffer->w = buffer->h = 1;
if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
if (!ec->comp_data) return EINA_FALSE;
- if (ec->comp_data->video_client)
+ if ((ec->comp_data->video_client) ||
+ (e_client_video_hw_composition_check(ec)))
return EINA_TRUE;
if (ec->comp_data->has_video_client)
e_comp_wl_surface_state_commit(ec, &sdata->cached);
- if ((!e_comp_object_damage_exists(ec->frame)) &&
- (!e_client_video_hw_composition_check(ec)))
- e_pixmap_image_clear(ec->pixmap, 1);
+ if (!e_comp_object_damage_exists(ec->frame))
+ {
+ if ((ec->comp_data->video_client) ||
+ (!e_client_video_hw_composition_check(ec)))
+ e_pixmap_image_clear(ec->pixmap, 1);
+ }
e_comp_wl_buffer_reference(&sdata->cached_buffer_ref, NULL);
/* if a leaf client is not video cliet */
if (ec->comp_data->sub.data && !ec->comp_data->sub.below_list &&
- !ec->comp_data->sub.below_list_pending && !ec->comp_data->video_client)
+ !ec->comp_data->sub.below_list_pending &&
+ ((!ec->comp_data->video_client) && (!e_client_video_hw_composition_check(ec))))
return EINA_TRUE;
EINA_LIST_FOREACH(ec->comp_data->sub.below_list_pending, l, subc)
ec = evas_object_data_get(evas_obj, "E_Client");
- if (asprintf(&str, "%d", ec->comp_data ? e_client_video_hw_composition_check((E_Client *)ec) : 0) < 0)
+ if (asprintf(&str, "%d", ec->comp_data ? (ec->comp_data->video_client || e_client_video_hw_composition_check((E_Client *)ec)) : 0) < 0)
return NULL;
return str;
if (ec->comp_data->sub.below_obj)
bgrect = (Ecore_Window)ec->comp_data->sub.below_obj;
maskobj = e_comp_object_mask_has(ec->frame);
- video = (e_client_video_hw_composition_check(ec)) ? 1 : 0;
+ video = (ec->comp_data->video_client || e_client_video_hw_composition_check(ec)) ? 1 : 0;
if (ec->comp_data->sub.data)
stand = ec->comp_data->sub.data->stand_alone;
name = e_client_util_name_get(ec);
{
EINA_SAFETY_ON_NULL_RETURN(ecv);
ecv->hw_composition = EINA_TRUE;
-
- /* Deprecated */
- if (ecv->ec->comp_data)
- ecv->ec->comp_data->video_client = EINA_TRUE;
}
EINTERN void
{
EINA_SAFETY_ON_NULL_RETURN(ecv);
ecv->hw_composition = EINA_FALSE;
-
- /* Deprecated */
- if (ecv->ec->comp_data)
- ecv->ec->comp_data->video_client = EINA_FALSE;
}
EINTERN Eina_Bool