tbm_module: add tbm_surface_data_get_bo_data_array 98/260298/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 22 Jun 2021 02:21:56 +0000 (11:21 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Tue, 22 Jun 2021 02:21:56 +0000 (11:21 +0900)
This gets the bo_data array from the surface_data

Change-Id: I3f22258b732a26664152f4668195a968678cb3ab

src/tbm_module.c
src/tbm_module.h

index b614128..57421c4 100644 (file)
@@ -910,6 +910,20 @@ tbm_surface_data_get_plane_data(tbm_backend_surface_data *surface_data, int plan
        return TBM_ERROR_NONE;
 }
 
+tbm_backend_bo_data **
+tbm_surface_data_get_bo_data_array(tbm_backend_surface_data *surface_data, int *num_bos, tbm_error_e *error)
+{
+       hal_tbm_bo **hal_bos = NULL;
+
+       TBM_RETURN_VAL_SET_ERR_IF_FAIL(surface_data, NULL, *error, TBM_ERROR_INVALID_PARAMETER);
+       TBM_RETURN_VAL_SET_ERR_IF_FAIL(surface_data->hal_surface, NULL, *error, TBM_ERROR_NOT_SUPPORTED);
+
+       hal_bos = hal_tbm_surface_get_bos(surface_data->hal_surface, num_bos, (hal_tbm_error *)error);
+       TBM_RETURN_VAL_IF_FAIL(hal_bos, NULL);
+
+       return (tbm_backend_bo_data **)hal_bos;
+}
+
 void
 tbm_module_bo_free(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int get_from_hal_surface)
 {
index 9f31c5f..4530c66 100644 (file)
@@ -92,6 +92,7 @@ tbm_backend_bo_data *tbm_module_import_bo_data_with_key(tbm_module *module, tbm_
 
 void                      tbm_surface_data_free(tbm_backend_surface_data *surface_data);
 tbm_error_e               tbm_surface_data_get_plane_data(tbm_backend_surface_data *surface_data, int plane_idx, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx);
+tbm_backend_bo_data     **tbm_surface_data_get_bo_data_array(tbm_backend_surface_data *surface_data, int *num_bos, tbm_error_e *error);
 
 void          tbm_module_bo_free(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int get_from_hal_surface);
 int           tbm_module_bo_get_size(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error);