_get_tbm_surface_bo_name(tbm_surface_h tbm_surface);
static void
_print_buffer_lists(tpl_wl_egl_surface_t *wl_egl_surface);
+static tpl_bool_t
+_check_buffer_validate(tpl_wl_egl_surface_t *wl_egl_surface, tbm_surface_h tbm_surface);
static void
__cb_wl_egl_buffer_free(tpl_wl_egl_buffer_t *wl_egl_buffer);
static tpl_wl_egl_buffer_t *
}
tpl_gmutex_unlock(&wl_egl_surface->buffers_mutex);
}
+
+static tpl_bool_t
+_check_buffer_validate(tpl_wl_egl_surface_t *wl_egl_surface, tbm_surface_h tbm_surface)
+{
+ int idx = 0;
+ tpl_bool_t ret = TPL_FALSE;
+
+ /* silent return */
+ if (!wl_egl_surface || !tbm_surface)
+ return ret;
+
+ tpl_gmutex_lock(&wl_egl_surface->buffers_mutex);
+ for (idx = 0; idx < BUFFER_ARRAY_SIZE; idx++) {
+ tpl_wl_egl_buffer_t *wl_egl_buffer = wl_egl_surface->buffers[idx];
+ if (wl_egl_buffer && wl_egl_buffer->tbm_surface == tbm_surface) {
+ ret = TPL_TRUE;
+ break;
+ }
+ }
+
+ if (ret == TPL_FALSE || idx == BUFFER_ARRAY_SIZE) {
+ TPL_ERR("tbm_surface(%p) is not owned by wl_egl_surface(%p)",
+ tbm_surface, wl_egl_surface);
+ }
+ tpl_gmutex_unlock(&wl_egl_surface->buffers_mutex);
+
+ return ret;
+}