From 91b64d95455e0899c4a0fdb9a15a0a1a63b4402c Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Wed, 22 Apr 2020 14:11:34 +0900 Subject: [PATCH] e_comp_wl_rsm: get E_Comp_Wl_Buffer from E_Comp_Wl_Client_Data resource of e_pixmap is set even if buffer flush is done. if remote surface use resouce of pixmap, remote_surface send buffer before uniconify render done. Change-Id: Id3abf86beee7bd1b384636d3cd70bfb61b5eb6a6 --- src/bin/e_comp_wl_rsm.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/bin/e_comp_wl_rsm.c b/src/bin/e_comp_wl_rsm.c index 4740b2d590..2f7a39d28b 100644 --- a/src/bin/e_comp_wl_rsm.c +++ b/src/bin/e_comp_wl_rsm.c @@ -501,6 +501,19 @@ _remote_provider_find(E_Client *ec) return provider; } +static E_Comp_Wl_Buffer * +_remote_surface_comp_wl_buffer_get(E_Client *ec) +{ + E_Comp_Wl_Client_Data *cdata = NULL; + + if (!ec) return NULL; + + cdata = ec->comp_data; + if (!cdata) return NULL; + + return cdata->buffer_ref.buffer; +} + static tbm_surface_h _remote_surface_get_tbm_surface_from_ns(E_Client *ec) { @@ -715,7 +728,7 @@ _remote_surface_buff_send(E_Comp_Wl_Remote_Surface *rs) EINA_SAFETY_ON_NULL_RETURN_VAL(src_ec, EINA_FALSE); - buff = e_pixmap_resource_get(src_ec->pixmap); + buff = _remote_surface_comp_wl_buffer_get(src_ec); tbm_surface = _remote_surface_get_tbm_surface_from_ns(src_ec); if ((buff) || (tbm_surface)) @@ -930,7 +943,7 @@ _remote_surface_bind_client(E_Comp_Wl_Remote_Surface *remote_surface, E_Client * EINA_SAFETY_ON_NULL_GOTO(remote_surface->provider->common.ec, bind_ec_set); - buffer = e_pixmap_resource_get(remote_surface->provider->common.ec->pixmap); + buffer = _remote_surface_comp_wl_buffer_get(remote_surface->provider->common.ec); EINA_SAFETY_ON_NULL_GOTO(buffer, bind_ec_set); _remote_surface_changed_buff_protocol_send(remote_surface, @@ -961,7 +974,7 @@ bind_ec_set: { E_Comp_Wl_Buffer *buffer; - buffer = e_pixmap_resource_get(remote_surface->provider->common.ec->pixmap); + buffer = _remote_surface_comp_wl_buffer_get(remote_surface->provider->common.ec); EINA_SAFETY_ON_NULL_RETURN(buffer); _e_comp_wl_remote_surface_state_buffer_set(&remote_surface->bind_ec->comp_data->pending, buffer); @@ -1532,7 +1545,7 @@ _remote_surface_cb_redirect(struct wl_client *client, struct wl_resource *resour tizen_remote_surface_send_input_event_filter(resource, remote_surface->provider->input_event_filter); - buffer = e_pixmap_resource_get(remote_surface->provider->common.ec->pixmap); + buffer = _remote_surface_comp_wl_buffer_get(remote_surface->provider->common.ec); tbm_surface = _remote_surface_get_tbm_surface_from_ns(remote_surface->provider->common.ec); EINA_SAFETY_ON_FALSE_RETURN((buffer) || (tbm_surface)); @@ -1565,7 +1578,7 @@ _remote_surface_cb_redirect(struct wl_client *client, struct wl_resource *resour remote_surface->redirect = EINA_TRUE; - buffer = e_pixmap_resource_get(remote_surface->source->common.ec->pixmap); + buffer = _remote_surface_comp_wl_buffer_get(remote_surface->source->common.ec); tbm_surface = _remote_surface_get_tbm_surface_from_ns(remote_surface->source->common.ec); if ((buffer) || (tbm_surface)) -- 2.34.1