- tdm_func_layer *func_layer;
- LAYER_FUNC_ENTRY();
-
- _pthread_mutex_lock(&private_display->lock);
-
- func_layer = &private_display->func_layer;
-
- if (private_layer->waiting_buffer) {
- _pthread_mutex_unlock(&private_display->lock);
- tdm_buffer_unref_backend(private_layer->waiting_buffer);
- tbm_surface_queue_release(private_layer->buffer_queue,
- private_layer->waiting_buffer);
- private_layer->waiting_buffer = NULL;
- _pthread_mutex_lock(&private_display->lock);
-
- if (tdm_debug_module & TDM_DEBUG_BUFFER)
- TDM_INFO("layer(%p) waiting_buffer(%p)",
- private_layer, private_layer->waiting_buffer);
- }
-
- if (private_layer->showing_buffer) {
- _pthread_mutex_unlock(&private_display->lock);
- tdm_buffer_unref_backend(private_layer->showing_buffer);
- tbm_surface_queue_release(private_layer->buffer_queue,
- private_layer->showing_buffer);
- _pthread_mutex_lock(&private_display->lock);
- private_layer->showing_buffer = NULL;
-
- if (tdm_debug_module & TDM_DEBUG_BUFFER)
- TDM_INFO("layer(%p) showing_buffer(%p)",
- private_layer, private_layer->showing_buffer);
- }
-
- tbm_surface_queue_remove_acquirable_cb(private_layer->buffer_queue, _tbm_layer_queue_acquirable_cb, layer);
- tbm_surface_queue_remove_destroy_cb(private_layer->buffer_queue, _tbm_layer_queue_destroy_cb, layer);
- private_layer->buffer_queue = NULL;
- private_layer->usable = 1;
-
- if (private_layer->usable)
- TDM_INFO("layer(%p) now usable", private_layer);
-
- if (!func_layer->layer_unset_buffer) {
- _pthread_mutex_unlock(&private_display->lock);
- TDM_ERR("not implemented!!");
- return TDM_ERROR_NOT_IMPLEMENTED;
- }
-
- ret = func_layer->layer_unset_buffer(private_layer->layer_backend);
-
- _pthread_mutex_unlock(&private_display->lock);
-
- return ret;