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 57421c4aa70bb2b3055168c2b8be55bc01895ed8..80abcc176e8e98bff0e9e62b67bf98faae18cccc 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 4530c66e1444b4cc3237d91bb6c62c2029429ed1..bccab4eceea4dd934898c098a4797829bd51d235 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);