tbm_surface_queue: Add tbm_surface_queue_internal header 56/315756/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 6 Aug 2024 11:07:06 +0000 (20:07 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Wed, 7 Aug 2024 08:00:35 +0000 (17:00 +0900)
Change-Id: I341d4a3eabb58d9bdc09600ea1efffce1a343f53

doc/doxygen/libtbm.doxygen
include/Makefile.am
include/tbm_surface_queue.h
include/tbm_surface_queue_internal.h [new file with mode: 0644]
src/tbm_bufmgr_int.h
src/tbm_surface_queue.c

index ac88a0dab3c96a08effe5e66cba9d163b65fdbd8..8cfbf8761327742f8f981f3b3784eda3844158b0 100644 (file)
@@ -782,6 +782,7 @@ INPUT                  = \
                        include/tbm_surface.h \
                        include/tbm_surface_internal.h \
                        include/tbm_surface_queue.h \
+                       include/tbm_surface_queue_internal.h \
                        include/tbm_sync.h \
                        include/tbm_drm_helper.h \
                        include/tbm_bufmgr_backend.h \
index 6d9f4f4ee3447d9a97880eb52bb33d28e97cfe3e..e8dc11bd364e2d2c7a5e0d24d6c63ee58cfaf6f3 100644 (file)
@@ -10,6 +10,7 @@ libtbminclude_HEADERS = \
                                                tbm_surface.h \
                                                tbm_surface_internal.h \
                                                tbm_surface_queue.h \
+                                               tbm_surface_queue_internal.h \
                                                tbm_sync.h \
                                                tbm_drm_helper.h \
                                                tbm_bufmgr_backend.h \
index d06768876c6d0aef916e1182c87fab0d3aec226a..d565dbb2db543c3fa3d0250f78d6a8cc4a2bba6a 100644 (file)
@@ -60,15 +60,6 @@ typedef struct _tbm_surface_queue *tbm_surface_queue_h;
 typedef void (*tbm_surface_queue_notify_cb)(tbm_surface_queue_h surface_queue,
                void *data);
 
-typedef tbm_surface_h (*tbm_surface_alloc_cb)(tbm_surface_queue_h surface_queue,
-               void *data);
-
-typedef tbm_surface_h (*tbm_surface_alloc_cb2)(tbm_surface_queue_h surface_queue,
-               int width, int height, int format, int flags, void *data);
-
-typedef void (*tbm_surface_free_cb)(tbm_surface_queue_h surface_queue,
-               void *data, tbm_surface_h surface);
-
 typedef void (*tbm_surface_queue_trace_cb)(tbm_surface_queue_h surface_queue,
                tbm_surface_h surface, tbm_surface_queue_trace trace, void *data);
 
@@ -164,50 +155,6 @@ tbm_surface_queue_h tbm_surface_queue_sequence_create(int queue_size, int width,
  */
 void tbm_surface_queue_destroy(tbm_surface_queue_h surface_queue);
 
-/**
- * @brief Sets allocate callback to the tbm_surface_queue.
- *        alloc_cb is called when the tbm_surface_queue try to allocate the tbm_surface and
- *        the tbm_surface_queue dequeue the tbm_surface returned in alloc_cb
- *        free_cb is called when the tbm_surface_queue unreference the tbm_surface.
- *
- * @remarks You must use either tbm_surface_queue_set_alloc_cb or tbm_surface_queue_set_alloc_cb2
- *
- * @param[in] surface_queue  The #tbm_surface_queue_h
- * @param[in] alloc_cb       The callback of allocate
- * @param[in] free_cb        The callback of free
- * @param[in] data           The user data
- *
- * @return  #TBM_SURFACE_QUEUE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_set_alloc_cb(
-       tbm_surface_queue_h surface_queue,
-       tbm_surface_alloc_cb alloc_cb,
-       tbm_surface_free_cb free_cb,
-       void *data);
-
-/**
- * @brief Sets allocate callback to the tbm_surface_queue.
- *        alloc_cb2 is called when the tbm_surface_queue try to allocate the tbm_surface and
- *        the tbm_surface_queue dequeue the tbm_surface returned in alloc_cb2
- *        free_cb is called when the tbm_surface_queue unreference the tbm_surface.
- *
- * @remarks You must use either tbm_surface_queue_set_alloc_cb or tbm_surface_queue_set_alloc_cb2
- *
- * @param[in] surface_queue  The #tbm_surface_queue_h
- * @param[in] alloc_cb2      The callback of allocate
- * @param[in] free_cb        The callback of free
- * @param[in] data           The user data
- *
- * @return  #TBM_SURFACE_QUEUE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_set_alloc_cb2(
-       tbm_surface_queue_h surface_queue,
-       tbm_surface_alloc_cb2 alloc_cb2,
-       tbm_surface_free_cb free_cb,
-       void *data);
-
 /**
  * @brief Gets the width of the tbm_surface_queue.
  *
@@ -292,49 +239,11 @@ tbm_surface_queue_error_e tbm_surface_queue_get_surfaces(
        tbm_surface_queue_h surface_queue,
        tbm_surface_h *surfaces, int *num);
 
-tbm_surface_queue_error_e tbm_surface_queue_get_acquirable_surfaces(
-       tbm_surface_queue_h surface_queue,
-       tbm_surface_h *surfaces, int *num);
-
 /**
- * @brief Gets number of the tbm_surfaces by tbm_surface_queue_trace.
- *
- * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  trace          The #tbm_surface_queue_trace
- * @param[out] num            The number of the surfaces
- *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
- *
- *
- * @par Example
-   @code
-   #include <tbm_surface_queue.h>
-
-   tbm_surface_queue_h surface_queue;
-   int num;
-   tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
-
-   ...
-
-   tsq_err = tbm_surface_queue_get_trace_surface_num(surface_queue, TBM_SURFACE_QUEUE_TRACE_DEQUEUE, &num);
-   if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE) {
-   ...
-   }
-
-   ...
-
-   @endcode
- */
-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);
-
-/**
- * @brief Sets size of the tbm_surface_queue.
+ * @brief Sets modes of the tbm_surface_queue.
  *
  * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  queue_size     The size of the tbm_surface_queue
- * @param[in]  flush          flush the tbm_surface_queue
+ * @param[in]  modes          modes of The #tbm_surface_queue_mode
   *
  * @return  #TBM_SURFACE_ERROR_NONE on success,
  *          otherwise an error status value
@@ -347,9 +256,11 @@ tbm_surface_queue_error_e tbm_surface_queue_get_trace_surface_num(
    tbm_surface_queue_h surface_queue;
    tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
 
+   surface_queue = tbm_surface_queue_create(3, 128, 128, TBM_FORMAT_ARGB888, TBM_BO_DEFAULT);
+
    ...
 
-   tsq_err = tbm_surface_queue_set_size(surface_queue, 2, 1);
+   tsq_err = tbm_surface_queue_set_modes(surface_queue, TBM_SURFACE_QUEUE_MODE_GUARANTEE_CYCLE);
    if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE) {
    ...
    }
@@ -358,17 +269,18 @@ tbm_surface_queue_error_e tbm_surface_queue_get_trace_surface_num(
 
    @endcode
  */
-tbm_surface_queue_error_e tbm_surface_queue_set_size(
-               tbm_surface_queue_h surface_queue, int queue_size, int flush);
+tbm_surface_queue_error_e tbm_surface_queue_set_modes(
+                       tbm_surface_queue_h surface_queue, int modes);
 
 /**
- * @brief Sets modes of the tbm_surface_queue.
+ * @brief Check the tbm_surface_queue can dequeue the tbm_surface.
+ *        if wait is 1, this function isn't return until another thread release
+ *        the tbm_surface to the tbm_surface_queue
  *
  * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  modes          modes of The #tbm_surface_queue_mode
-  *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
+ * @param[in]  wait           wait releasing the tbm_surface
+ *
+ * @return 1 if it can it, otherwise 0.
  *
  *
  * @par Example
@@ -376,56 +288,41 @@ tbm_surface_queue_error_e tbm_surface_queue_set_size(
    #include <tbm_surface_queue.h>
 
    tbm_surface_queue_h surface_queue;
-   tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
-
-   surface_queue = tbm_surface_queue_create(3, 128, 128, TBM_FORMAT_ARGB888, TBM_BO_DEFAULT);
 
    ...
 
-   tsq_err = tbm_surface_queue_set_modes(surface_queue, TBM_SURFACE_QUEUE_MODE_GUARANTEE_CYCLE);
-   if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE) {
-   ...
+   if (tbm_surface_queue_can_dequeue(surface_queue, 0)) {
+
    }
 
    ...
 
    @endcode
  */
-tbm_surface_queue_error_e tbm_surface_queue_set_modes(
-                       tbm_surface_queue_h surface_queue, int modes);
-
-/**
- * @brief Sets sync count of the tbm_surface_queue.
- *
- * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  sync_count     The sync count
- *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_set_sync_count(
-                       tbm_surface_queue_h surface_queue, unsigned int sync_count);
+int tbm_surface_queue_can_dequeue(tbm_surface_queue_h surface_queue, int wait);
 
 /**
  * @brief Check the tbm_surface_queue can dequeue the tbm_surface.
- *        if wait is 1, this function isn't return until another thread release
+ *        this function wait for ms_timeout untill another thread release
  *        the tbm_surface to the tbm_surface_queue
  *
  * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  wait           wait releasing the tbm_surface
- *
- * @return 1 if it can it, otherwise 0.
+ * @param[in]  ms_timeout     milisecond time for waiting releasing the tbm_surface
  *
+ * @return #TBM_SURFACE_QUEUE_ERROR_NONE if it can it,
+ *         otherwise an error status value
  *
  * @par Example
    @code
    #include <tbm_surface_queue.h>
 
    tbm_surface_queue_h surface_queue;
+   tbm_surface_queue_error_e err;
 
    ...
 
-   if (tbm_surface_queue_can_dequeue(surface_queue, 0)) {
+   err = tbm_surface_queue_can_dequeue_wait_timeout(surface_queue, 10000);
+   if (err == TBM_SURFACE_QUEUE_ERROR_NONE) {
 
    }
 
@@ -433,7 +330,8 @@ tbm_surface_queue_error_e tbm_surface_queue_set_sync_count(
 
    @endcode
  */
-int tbm_surface_queue_can_dequeue(tbm_surface_queue_h surface_queue, int wait);
+tbm_surface_queue_error_e tbm_surface_queue_can_dequeue_wait_timeout(
+        tbm_surface_queue_h surface_queue, int ms_timeout);
 
 /**
  * @brief Check the tbm_surface_queue can acquire the tbm_surface.
@@ -777,26 +675,6 @@ tbm_surface_queue_error_e tbm_surface_queue_flush(tbm_surface_queue_h surface_qu
  */
 tbm_surface_queue_error_e tbm_surface_queue_free_flush(tbm_surface_queue_h surface_queue);
 
-/**
- * @brief Notify reset of the tbm_surface_queue.
- *
- * @param[in]  surface_queue  The #tbm_surface_queue_h
- *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_notify_reset(tbm_surface_queue_h surface_queue);
-
-/**
- * @brief Notify dequeuable of the tbm_surface_queue.
- *
- * @param[in]  surface_queue  The #tbm_surface_queue_h
- *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_notify_dequeuable(tbm_surface_queue_h surface_queue);
-
 /**
  * @brief Add callback of destroy to the tbm_surface_queue.
  *
@@ -909,34 +787,6 @@ tbm_surface_queue_error_e tbm_surface_queue_remove_dequeue_cb(
        tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeue_cb,
        void *data);
 
-/**
- * @brief Add callback of can_dequeue to the tbm_surface_queue.
- *
- * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  can_dequeue_cb The callback of can_dequeue
- * @param[in]  data           The user data
- *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_add_can_dequeue_cb(
-       tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb can_dequeue_cb,
-       void *data);
-
-/**
- * @brief Remove callback of can_dequeue from the tbm_surface_queue.
- *
- * @param[in]  surface_queue  The #tbm_surface_queue_h
- * @param[in]  can_dequeue_cb The callback of can_dequeue
- * @param[in]  data           The user data
- *
- * @return  #TBM_SURFACE_ERROR_NONE on success,
- *          otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_remove_can_dequeue_cb(
-       tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb can_dequeue_cb,
-       void *data);
-
 /**
  * @brief Add callback of acquirable to the tbm_surface_queue.
  *
@@ -993,10 +843,6 @@ tbm_surface_queue_error_e tbm_surface_queue_remove_trace_cb(
        tbm_surface_queue_h surface_queue, tbm_surface_queue_trace_cb trace_cb,
        void *data);
 
-tbm_surface_queue_error_e
-tbm_surface_queue_can_dequeue_wait_timeout(
-        tbm_surface_queue_h surface_queue, int ms_timeout);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/tbm_surface_queue_internal.h b/include/tbm_surface_queue_internal.h
new file mode 100644 (file)
index 0000000..816ccc6
--- /dev/null
@@ -0,0 +1,229 @@
+/**************************************************************************
+
+libtbm
+
+Copyright 2014 Samsung Electronics co., Ltd. All Rights Reserved.
+
+Contact: SooChan Lim <sc1.lim@samsung.com>, Sangjin Lee <lsj119@samsung.com>
+Boram Park <boram1288.park@samsung.com>, Changyeon Lee <cyeon.lee@samsung.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+#ifndef _TBM_SURFACE_QUEUE_INTERNAL_H_
+#define _TBM_SURFACE_QUEUE_INTERNAL_H_
+
+#include <tbm_surface.h>
+#include <tbm_surface_queue.h>
+#include <tbm_type_common.h>
+#include <tbm_error.h>
+
+typedef tbm_surface_h (*tbm_surface_alloc_cb)(tbm_surface_queue_h surface_queue,
+               void *data);
+
+typedef tbm_surface_h (*tbm_surface_alloc_cb2)(tbm_surface_queue_h surface_queue,
+               int width, int height, int format, int flags, void *data);
+
+typedef void (*tbm_surface_free_cb)(tbm_surface_queue_h surface_queue,
+               void *data, tbm_surface_h surface);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Sets allocate callback to the tbm_surface_queue.
+ *        alloc_cb is called when the tbm_surface_queue try to allocate the tbm_surface and
+ *        the tbm_surface_queue dequeue the tbm_surface returned in alloc_cb
+ *        free_cb is called when the tbm_surface_queue unreference the tbm_surface.
+ *
+ * @remarks You must use either tbm_surface_queue_set_alloc_cb or tbm_surface_queue_set_alloc_cb2
+ *
+ * @param[in] surface_queue  The #tbm_surface_queue_h
+ * @param[in] alloc_cb       The callback of allocate
+ * @param[in] free_cb        The callback of free
+ * @param[in] data           The user data
+ *
+ * @return  #TBM_SURFACE_QUEUE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_set_alloc_cb(
+       tbm_surface_queue_h surface_queue,
+       tbm_surface_alloc_cb alloc_cb,
+       tbm_surface_free_cb free_cb,
+       void *data);
+
+/**
+ * @brief Sets allocate callback to the tbm_surface_queue.
+ *        alloc_cb2 is called when the tbm_surface_queue try to allocate the tbm_surface and
+ *        the tbm_surface_queue dequeue the tbm_surface returned in alloc_cb2
+ *        free_cb is called when the tbm_surface_queue unreference the tbm_surface.
+ *
+ * @remarks You must use either tbm_surface_queue_set_alloc_cb or tbm_surface_queue_set_alloc_cb2
+ *
+ * @param[in] surface_queue  The #tbm_surface_queue_h
+ * @param[in] alloc_cb2      The callback of allocate
+ * @param[in] free_cb        The callback of free
+ * @param[in] data           The user data
+ *
+ * @return  #TBM_SURFACE_QUEUE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_set_alloc_cb2(
+       tbm_surface_queue_h surface_queue,
+       tbm_surface_alloc_cb2 alloc_cb2,
+       tbm_surface_free_cb free_cb,
+       void *data);
+
+tbm_surface_queue_error_e tbm_surface_queue_get_acquirable_surfaces(
+       tbm_surface_queue_h surface_queue,
+       tbm_surface_h *surfaces, int *num);
+
+/**
+ * @brief Gets number of the tbm_surfaces by tbm_surface_queue_trace.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ * @param[in]  trace          The #tbm_surface_queue_trace
+ * @param[out] num            The number of the surfaces
+ *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ *
+ *
+ * @par Example
+   @code
+   #include <tbm_surface_queue.h>
+
+   tbm_surface_queue_h surface_queue;
+   int num;
+   tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
+
+   ...
+
+   tsq_err = tbm_surface_queue_get_trace_surface_num(surface_queue, TBM_SURFACE_QUEUE_TRACE_DEQUEUE, &num);
+   if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE) {
+   ...
+   }
+
+   ...
+
+   @endcode
+ */
+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);
+
+/**
+ * @brief Sets size of the tbm_surface_queue.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ * @param[in]  queue_size     The size of the tbm_surface_queue
+ * @param[in]  flush          flush the tbm_surface_queue
+  *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ *
+ *
+ * @par Example
+   @code
+   #include <tbm_surface_queue.h>
+
+   tbm_surface_queue_h surface_queue;
+   tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
+
+   ...
+
+   tsq_err = tbm_surface_queue_set_size(surface_queue, 2, 1);
+   if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE) {
+   ...
+   }
+
+   ...
+
+   @endcode
+ */
+tbm_surface_queue_error_e tbm_surface_queue_set_size(
+               tbm_surface_queue_h surface_queue, int queue_size, int flush);
+
+/**
+ * @brief Sets sync count of the tbm_surface_queue.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ * @param[in]  sync_count     The sync count
+ *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_set_sync_count(
+                       tbm_surface_queue_h surface_queue, unsigned int sync_count);
+
+/**
+ * @brief Notify reset of the tbm_surface_queue.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_notify_reset(tbm_surface_queue_h surface_queue);
+
+/**
+ * @brief Notify dequeuable of the tbm_surface_queue.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_notify_dequeuable(tbm_surface_queue_h surface_queue);
+
+/**
+ * @brief Add callback of can_dequeue to the tbm_surface_queue.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ * @param[in]  can_dequeue_cb The callback of can_dequeue
+ * @param[in]  data           The user data
+ *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_add_can_dequeue_cb(
+       tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb can_dequeue_cb,
+       void *data);
+
+/**
+ * @brief Remove callback of can_dequeue from the tbm_surface_queue.
+ *
+ * @param[in]  surface_queue  The #tbm_surface_queue_h
+ * @param[in]  can_dequeue_cb The callback of can_dequeue
+ * @param[in]  data           The user data
+ *
+ * @return  #TBM_SURFACE_ERROR_NONE on success,
+ *          otherwise an error status value
+ */
+tbm_surface_queue_error_e tbm_surface_queue_remove_can_dequeue_cb(
+       tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb can_dequeue_cb,
+       void *data);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _TBM_SURFACE_INTERNAL_H_ */
index e6054384f5acb9e5a6766c1637b155d2f1a53196..4b1fe376b7e8ffa86991b00e3265c01469982c1f 100644 (file)
@@ -57,6 +57,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <tbm_surface.h>
 #include <tbm_surface_internal.h>
 #include <tbm_surface_queue.h>
+#include <tbm_surface_queue_internal.h>
 #include <tbm_log.h>
 #include <tbm_error.h>
 #include "tbm_module.h"
index 5d90f8fa952729011f9081f8a5343df03edfe36a..4c7f26e9b556e9b323db7805de258db8245338ed 100644 (file)
@@ -32,6 +32,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "config.h"
 
 #include "tbm_bufmgr_int.h"
+#include "tbm_surface_queue_internal.h"
 #include "list.h"
 #include <time.h>