tbm_module: add tbm_surface_data_export 99/260299/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 22 Jun 2021 02:23:04 +0000 (11:23 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Tue, 22 Jun 2021 02:23:04 +0000 (11:23 +0900)
This exports the buffer_data from surface_data.

Change-Id: If4731f1acd61a4498139549fd49fd39d10dca4fe

src/tbm_module.c
src/tbm_module.h

index 57421c4..80abcc1 100644 (file)
@@ -924,6 +924,21 @@ tbm_surface_data_get_bo_data_array(tbm_backend_surface_data *surface_data, int *
        return (tbm_backend_bo_data **)hal_bos;
 }
 
+tbm_surface_buffer_data *
+tbm_surface_data_export(tbm_backend_surface_data *surface_data, tbm_error_e *error)
+{
+       tbm_surface_buffer_data *buffer_data;
+
+       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);
+
+       buffer_data = (tbm_surface_buffer_data *)hal_tbm_surface_export((hal_tbm_surface *)surface_data->hal_surface,
+                                                                                                                                       (hal_tbm_error *)error);
+       TBM_RETURN_VAL_IF_FAIL(buffer_data, NULL);
+
+       return buffer_data;
+}
+
 void
 tbm_module_bo_free(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int get_from_hal_surface)
 {
index 4530c66..bccab4e 100644 (file)
@@ -93,6 +93,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);
+tbm_surface_buffer_data  *tbm_surface_data_export(tbm_backend_surface_data *surface_data, 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);