From 82e962d377610262cfe3ed565ce827728ed9902b Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Mon, 10 Feb 2025 18:09:37 +0900 Subject: [PATCH] Revert "Remove tbm_surface_queue_get_acquirable_surfaces" This reverts commit 04b0e853098173a76a3bdcb0c78577655e66a21c. Change-Id: I5878d9e4e4c180a8ff0f378f5b55464ad6e659f7 --- include/tbm_surface_queue_internal.h | 4 ++++ src/tbm_surface_queue.c | 31 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/include/tbm_surface_queue_internal.h b/include/tbm_surface_queue_internal.h index 0e425f1..3d9bb5d 100644 --- a/include/tbm_surface_queue_internal.h +++ b/include/tbm_surface_queue_internal.h @@ -94,6 +94,10 @@ tbm_surface_queue_error_e tbm_surface_queue_set_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 Sets size of the tbm_surface_queue. * diff --git a/src/tbm_surface_queue.c b/src/tbm_surface_queue.c index c36783d..635a56b 100644 --- a/src/tbm_surface_queue.c +++ b/src/tbm_surface_queue.c @@ -2111,6 +2111,37 @@ tbm_surface_queue_get_surfaces(tbm_surface_queue_h surface_queue, return TBM_SURFACE_QUEUE_ERROR_NONE; } +tbm_surface_queue_error_e +tbm_surface_queue_get_acquirable_surfaces(tbm_surface_queue_h surface_queue, + tbm_surface_h *surfaces, int *num) +{ + queue_node *node = NULL; + + _tbm_surf_queue_mutex_lock(); + + *num = 0; + + TBM_SURF_QUEUE_RETURN_VAL_IF_FAIL(_tbm_surface_queue_is_valid(surface_queue), + TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE); + TBM_SURF_QUEUE_RETURN_VAL_IF_FAIL(num != NULL, + TBM_ERROR_INVALID_PARAMETER); + + pthread_mutex_lock(&surface_queue->lock); + + LIST_FOR_EACH_ENTRY(node, &surface_queue->dirty_queue.head, item_link) { + if (surfaces) + surfaces[*num] = node->surface; + + *num = *num + 1; + } + + pthread_mutex_unlock(&surface_queue->lock); + + _tbm_surf_queue_mutex_unlock(); + + return TBM_SURFACE_QUEUE_ERROR_NONE; +} + static const tbm_surface_queue_interface tbm_queue_default_impl = { NULL, /*__tbm_queue_default_init*/ NULL, /*__tbm_queue_default_reset*/ -- 2.34.1