From: Changyeon Lee Date: Thu, 9 Dec 2021 10:54:34 +0000 (+0900) Subject: Send transform of window and buffer to server after they are created. X-Git-Tag: submit/tizen/20211214.052148~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F72%2F267972%2F1;p=platform%2Fcore%2Fuifw%2Flibtpl-egl.git Send transform of window and buffer to server after they are created. this patch is for fixing below case 1. create eglWidnowSurface(1) with wl_egl_window(1) 2. set window and buffer 90 transform with wl_egl_window(1) 3. destroy eglWindowSurface(1) of wl_egl_window(1) 4. set window and buffer 0 transform with wl_egl_window(1) 5. create eglWidnowSurface(2) with wl_egl_window(1) 7. set window transform 0 transform with wl_egl_window(1) 8. tpl does not send 0 transform to server Change-Id: I8d83750f4ecd5791accecf4fe51681fe55b05cf1 --- diff --git a/src/tpl_wayland_egl.c b/src/tpl_wayland_egl.c index 113159d..27509b1 100755 --- a/src/tpl_wayland_egl.c +++ b/src/tpl_wayland_egl.c @@ -681,7 +681,7 @@ __tpl_wayland_egl_surface_init(tpl_surface_t *surface) surface->rotation = tizen_private->rotation; surface->rotation_capability = TPL_FALSE; - wayland_egl_surface->latest_transform = 0; + wayland_egl_surface->latest_transform = -1; wl_egl_window->resize_callback = (void *)__cb_client_window_resize_callback; wl_egl_window->destroy_window_callback = (void *)__cb_client_window_destroy_callback; @@ -1446,6 +1446,7 @@ __tpl_wayland_egl_surface_dequeue_buffer(tpl_surface_t *surface, uint64_t timeou wayland_egl_buffer->bo = tbm_surface_internal_get_bo(tbm_surface, 0); wayland_egl_buffer->wayland_egl_surface = wayland_egl_surface; wayland_egl_buffer->transform = tizen_private->transform; + wayland_egl_buffer->window_transform = -1; if (wayland_egl_buffer->window_transform != tizen_private->window_transform) { wayland_egl_buffer->window_transform = tizen_private->window_transform; diff --git a/src/tpl_wl_egl_thread.c b/src/tpl_wl_egl_thread.c index 1a96557..4a53fd5 100755 --- a/src/tpl_wl_egl_thread.c +++ b/src/tpl_wl_egl_thread.c @@ -1677,7 +1677,7 @@ __tpl_wl_egl_surface_init(tpl_surface_t *surface) wl_egl_surface->use_render_done_fence = TPL_FALSE; wl_egl_surface->set_serial_is_used = TPL_FALSE; - wl_egl_surface->latest_transform = 0; + wl_egl_surface->latest_transform = -1; wl_egl_surface->render_done_cnt = 0; wl_egl_surface->serial = 0; @@ -2347,6 +2347,8 @@ _wl_egl_buffer_create(tpl_wl_egl_surface_t *wl_egl_surface, wl_egl_buffer->width = tbm_surface_get_width(tbm_surface); wl_egl_buffer->height = tbm_surface_get_height(tbm_surface); + wl_egl_buffer->w_transform = -1; + tpl_gmutex_init(&wl_egl_buffer->mutex); tpl_gcond_init(&wl_egl_buffer->cond);