TBM_SURFACE_QUEUE_TRACE_CANCEL_ACQUIRE = 6,
} tbm_surface_queue_trace;
+typedef enum {
+ TBM_SURFACE_QUEUE_MODE_NONE = 0,
+ /**
+ * GUARANTEE_CYCLE mode must do enqueue/aquire/release or cancel_dequeue
+ * for the tbm_surface which is dequeued before tbm_surface_queue is reset.
+ */
+ TBM_SURFACE_QUEUE_MODE_GUARANTEE_CYCLE = (1 << 0),
+} tbm_surface_queue_mode;
+
typedef struct _tbm_surface_queue *tbm_surface_queue_h;
typedef void (*tbm_surface_queue_notify_cb)(tbm_surface_queue_h surface_queue,
tbm_surface_queue_error_e tbm_surface_queue_get_trace_surface_num(
tbm_surface_queue_h surface_queue, tbm_surface_queue_trace trace, int *num);
+tbm_surface_queue_error_e tbm_surface_queue_set_modes(
+ tbm_surface_queue_h surface_queue, int modes);
+
/*The functions of queue factory*/
tbm_surface_queue_h tbm_surface_queue_create(int queue_size, int width,
int height, int format, int flags);