tpl_bool_t is_new; /* for frontbuffer mode */
tpl_bool_t need_to_release; /* for checking need release */
struct wl_proxy *wl_proxy; /* wl_buffer proxy */
+ unsigned int serial; /* increase while dequeue */
};
static tpl_list_t *committed_wl_buffers = NULL;
}
}
+ wayland_tbm_client_set_buffer_serial(wayland_egl_display->wl_tbm_client,
+ (void *)wayland_egl_buffer->wl_proxy,
+ wayland_egl_buffer->serial);
wl_surface_commit(wl_egl_window->surface);
wayland_egl_buffer->need_to_release = TPL_TRUE;
wl_display_flush(wayland_egl_display->wl_dpy);
+ ++wl_egl_window->serial;
+ wayland_egl_buffer->serial = wl_egl_window->serial;
+
wayland_egl_buffer->dx = wl_egl_window->dx;
wayland_egl_buffer->dy = wl_egl_window->dy;
wayland_egl_buffer->width = wl_egl_window->width;
tbm_surface_h tbm_surface;
twe_wl_surf_source *surf_source;
+
+ /* for wayland_tbm_client_set_buffer_serial */
+ unsigned int serial;
};
struct _vk_sync_draw_source {
buf_info->transform = wl_egl_window->transform;
buf_info->dx = wl_egl_window->dx;
buf_info->dy = wl_egl_window->dy;
+ ++wl_egl_window->serial;
+ buf_info->serial = wl_egl_window->serial;
}
if (buf_info->rects) {
}
buf_info->transform = wl_egl_window->transform;
+ ++wl_egl_window->serial;
+ buf_info->serial = wl_egl_window->serial;
} else {
buf_info->dx = 0;
buf_info->dy = 0;
buf_info->w_transform = 0;
buf_info->w_rotated = TPL_FALSE;
buf_info->rotated = TPL_FALSE;
+ buf_info->serial = 0;
}
buf_info->sync_timestamp = 0;
}
}
}
-
+ wayland_tbm_client_set_buffer_serial(disp_source->wl_tbm_client,
+ (void *)buf_info->wl_buffer,
+ buf_info->serial);
wl_surface_commit(wl_surface);
TRACE_ASYNC_BEGIN((int)tbm_surface, "[COMMIT ~ RELEASE] BO(%d)",
int frontbuffer_mode;
int transform;
int window_transform;
+ unsigned int serial;
void *private;
void (*destroy_window_callback)(void *);
egl_window->window_transform = window_transform;
}
+
+unsigned int
+wl_egl_window_tizen_get_window_serial(struct wl_egl_window *egl_window)
+{
+ if (egl_window == NULL) {
+ WL_EGL_ERR("egl_window is NULL");
+ return 0;
+ }
+
+ return egl_window->serial;
+}
\ No newline at end of file
wl_egl_window_tizen_set_window_transform(struct wl_egl_window *egl_window,
int window_transform);
+unsigned int
+wl_egl_window_tizen_get_window_serial(struct wl_egl_window *egl_window);
+
#ifdef __cplusplus
}
#endif
egl_window->frontbuffer_mode = 0;
egl_window->transform = 0;
egl_window->window_transform = 0;
+ egl_window->serial = 0;
egl_window->private = NULL;
egl_window->rotate_callback = NULL;
egl_window->window_transform = window_transform;
}
-