int format;
int flag;
uint num_bufs;
+ uint queue_size;
struct wl_surface *wl_surface;
int is_active;
WL_TBM_TRACE("pid:%d\n", getpid());
#endif
_wayland_tbm_client_queue_destory_attach_bufs(queue_info);
- tbm_surface_queue_flush(queue_info->tbm_queue);
+ tbm_surface_queue_set_size(queue_info->tbm_queue, queue_info->queue_size, 1);
}
static tbm_surface_h
static void
handle_tbm_queue_active(void *data,
struct wl_tbm_queue *wl_tbm_queue,
- uint32_t usage)
+ uint32_t usage,
+ uint32_t queue_size,
+ uint32_t need_flush)
{
struct wayland_tbm_surface_queue *queue_info = data;
queue_info->usage = usage;
/* flush the allocated surfaces at the client */
- tbm_surface_queue_flush(queue_info->tbm_queue);
+ tbm_surface_queue_set_size(queue_info->tbm_queue, queue_size, need_flush);
}
static void
queue_info->height = height;
queue_info->format = format;
queue_info->flag = 0;
+ queue_info->queue_size = queue_size;
queue_info->tbm_queue = tbm_surface_queue_sequence_create(queue_size,
width, height, format, 0);
}
void
-wayland_tbm_server_client_queue_activate(struct wayland_tbm_client_queue *cqueue, uint32_t usage)
+wayland_tbm_server_client_queue_activate(struct wayland_tbm_client_queue *cqueue,
+ uint32_t usage, uint32_t queue_size, uint32_t need_flush)
{
WL_TBM_RETURN_IF_FAIL(cqueue != NULL);
WL_TBM_RETURN_IF_FAIL(cqueue->wl_tbm_queue != NULL);
#ifdef DEBUG_TRACE
WL_TBM_TRACE(" pid:%d\n", cqueue->pid);
#endif
- wl_tbm_queue_send_active(cqueue->wl_tbm_queue, usage);
+ wl_tbm_queue_send_active(cqueue->wl_tbm_queue, usage, queue_size, 1);
}
void
void
wayland_tbm_server_client_queue_activate(struct wayland_tbm_client_queue *client_queue,
- uint32_t usage);
+ uint32_t usage, uint32_t queue_size, uint32_t need_flush);
void
wayland_tbm_server_client_queue_deactivate(struct wayland_tbm_client_queue *client_queue);