hwc: add exynos_output_hwc_unset_client_target_buffer 06/169906/3
authorSooChan Lim <sc1.lim@samsung.com>
Mon, 12 Feb 2018 04:11:08 +0000 (13:11 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Tue, 20 Feb 2018 00:53:48 +0000 (00:53 +0000)
Change-Id: I064bae620fdc1c6e001b7afe3f707aba4de4ee60

src/tdm_exynos.c
src/tdm_exynos.h
src/tdm_exynos_output.c

index 9e0125e690c102180d1b220a323be5bb2375f731..e99f590e66eaae9a618fcb946390423a414786dc 100644 (file)
@@ -317,6 +317,7 @@ tdm_exynos_init(tdm_display *dpy, tdm_error *error)
                exynos_func_output.output_hwc_accept_changes = exynos_output_hwc_accept_changes;
                exynos_func_output.output_hwc_get_target_buffer_queue = exynos_output_hwc_get_target_buffer_queue;
                exynos_func_output.output_hwc_set_client_target_buffer = exynos_output_hwc_set_client_target_buffer;
+               exynos_func_output.output_hwc_unset_client_target_buffer = exynos_output_hwc_unset_client_target_buffer;
                exynos_func_output.output_hwc_get_video_supported_formats = exynos_output_hwc_get_video_supported_formats;
                exynos_func_output.output_hwc_create_video_window = exynos_output_hwc_create_video_window;
 
index a82c4efbea9fafaf272fda9c07b332293282d243..6ab56b059e70e543bec6a8f5686cfa835dba45c0 100644 (file)
@@ -67,6 +67,7 @@ tdm_error    exynos_output_hwc_get_changed_composition_types(tdm_output *output,
 tdm_error    exynos_output_hwc_accept_changes(tdm_output *output);
 tbm_surface_queue_h exynos_output_hwc_get_target_buffer_queue(tdm_output *output, tdm_error *error);
 tdm_error    exynos_output_hwc_set_client_target_buffer(tdm_output *output, tbm_surface_h buffer, tdm_hwc_region damage);
+tdm_error    exynos_output_hwc_unset_client_target_buffer(tdm_output *output);
 tdm_error    exynos_output_hwc_get_video_supported_formats(tdm_output *output, const tbm_format **formats, int *count);
 tdm_hwc_window *exynos_output_hwc_create_video_window(tdm_output *output, tdm_error *error);
 tdm_error    exynos_layer_get_capability(tdm_layer *layer, tdm_caps_layer *caps);
index 2e7995a4be24d2f95c90fef64465f884b3c6e7c1..b1ae2914a6dbe70f705f0eb11daee15ded4e1182 100644 (file)
@@ -1689,6 +1689,21 @@ exynos_output_hwc_set_client_target_buffer(tdm_output *output, tbm_surface_h buf
        return TDM_ERROR_NONE;
 }
 
+tdm_error
+exynos_output_hwc_unset_client_target_buffer(tdm_output *output)
+{
+       tdm_exynos_output_data *output_data = output;
+       tdm_error err;
+
+       RETURN_VAL_IF_FAIL(output_data != NULL, TDM_ERROR_INVALID_PARAMETER);
+       RETURN_VAL_IF_FAIL(output_data->target_hwc_window  != NULL, TDM_ERROR_OPERATION_FAILED);
+
+       err = exynos_hwc_window_unset_buffer(output_data->target_hwc_window);
+       RETURN_VAL_IF_FAIL(err == TDM_ERROR_NONE, err);
+
+       return TDM_ERROR_NONE;
+}
+
 tdm_hwc_window *
 exynos_output_hwc_create_video_window(tdm_output *output, tdm_error *error)
 {