int reuse;
int usable;
+ int width;
+ int height;
+ int format;
+
struct wl_tbm_queue *wl_tbm_queue;
struct wl_list link;
};
_wayland_tbm_client_is_valid_attach_bufs(struct wayland_tbm_surface_queue *queue_info,
struct wayland_tbm_buffer *buffer)
{
- int width, height, format;
-
- width = tbm_surface_get_width(buffer->tbm_surface);
- height = tbm_surface_get_height(buffer->tbm_surface);
- format = tbm_surface_get_format(buffer->tbm_surface);
-
- if (queue_info->width != width ||
- queue_info->height != height ||
- queue_info->format != format)
+ if (queue_info->width != buffer->width ||
+ queue_info->height != buffer->height ||
+ queue_info->format != buffer->format)
return 0;
return 1;
WL_TBM_RETURN_IF_FAIL(wl_buffer != NULL);
- pthread_mutex_lock(&queue_info->lock);
-
buffer = calloc(1, sizeof(struct wayland_tbm_buffer));
WL_TBM_GOTO_IF_FAIL(buffer != NULL, fail_alloc);
WL_TBM_GOTO_IF_FAIL(buffer->tbm_surface != NULL, fail_get_data);
buffer->flags = flags;
+ buffer->width = tbm_surface_get_width(buffer->tbm_surface);
+ buffer->height = tbm_surface_get_height(buffer->tbm_surface);
+ buffer->format = tbm_surface_get_format(buffer->tbm_surface);
+
+ pthread_mutex_lock(&queue_info->lock);
wl_list_insert(&queue_info->attach_bufs, &buffer->link);
pthread_mutex_unlock(&queue_info->lock);
fail_get_data:
free(buffer);
fail_alloc:
- pthread_mutex_unlock(&queue_info->lock);
wl_buffer_destroy(wl_buffer);
}