tbm_surface_queue: added tbm_surface_queue_mode
[platform/core/uifw/libtbm.git] / src / tbm_surface_queue.h
index 1db6266..691f774 100644 (file)
@@ -55,6 +55,15 @@ typedef enum {
        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,
@@ -185,6 +194,9 @@ tbm_surface_queue_error_e tbm_surface_queue_get_surfaces(
 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);