exynos_func_hwc_window.hwc_window_set_buffer = exynos_hwc_window_set_buffer;
exynos_func_hwc_window.hwc_window_unset_buffer = exynos_hwc_window_unset_buffer;
exynos_func_hwc_window.hwc_window_get_buffer = exynos_hwc_window_get_buffer;
+ exynos_func_hwc_window.hwc_window_get_layer = exynos_hwc_window_get_layer;
exynos_func_hwc_window.hwc_window_set_composition_type = exynos_hwc_window_set_composition_type;
exynos_func_hwc_window.hwc_window_set_info = exynos_hwc_window_set_info;
exynos_func_hwc_window.hwc_window_get_info = exynos_hwc_window_get_info;
tdm_error exynos_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h surface);
tdm_error exynos_hwc_window_unset_buffer(tdm_hwc_window *hwc_window);
tbm_surface_h exynos_hwc_window_get_buffer(tdm_hwc_window *hwc_window, tdm_error *error);
+tdm_layer *exynos_hwc_window_get_layer(tdm_hwc_window *hwc_window, tdm_error *error);
tdm_error exynos_hwc_window_set_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags);
tdm_error exynos_hwc_window_unset_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags);
tdm_error exynos_hwc_window_video_get_capability(tdm_hwc_window *hwc_window,
tdm_exynos_layer_data *
_exynos_output_get_layer(tdm_exynos_output_data *output_data, int index);
+const char *
+_comp_to_str(tdm_hwc_window_composition composition_type);
+
tbm_surface_queue_h
exynos_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error)
{
return NULL;
}
+tdm_layer *
+exynos_hwc_window_get_layer(tdm_hwc_window *hwc_window, tdm_error *error)
+{
+ tdm_exynos_hwc_window_data *hwc_window_data = hwc_window;
+ tdm_exynos_output_data *output_data;
+ tdm_exynos_data *exynos_data;
+ tdm_exynos_layer_data *layer_data = NULL;
+
+ if (!hwc_window_data)
+ goto fail_paremeter;
+
+ output_data = hwc_window_data->output_data;
+ exynos_data = hwc_window_data->exynos_data;
+
+ if (!output_data)
+ goto fail_operation;
+ if (!exynos_data)
+ goto fail_operation;
+ if (hwc_window_data->assigned_layer_zpos == -1) {
+ TDM_ERR("Fail: No assigend_layer_zpos.");
+ goto fail_operation;
+ }
+
+ if (hwc_window_data->validated_type == TDM_COMPOSITION_NONE ||
+ hwc_window_data->validated_type == TDM_COMPOSITION_CLIENT ||
+ hwc_window_data->validated_type == TDM_COMPOSITION_DEVICE_CANDIDATE) {
+ TDM_ERR("Fail: validate_type is %s.", _comp_to_str(hwc_window_data->validated_type));
+ goto fail_operation;
+ }
+
+ layer_data = _exynos_output_get_layer(output_data, hwc_window_data->assigned_layer_zpos);
+ if (!layer_data) {
+ TDM_ERR("Fail: No layer_data.");
+ goto fail_operation;
+ }
+
+ *error = TDM_ERROR_NONE;
+
+ return (tdm_layer *)layer_data;
+
+fail_paremeter:
+ *error = TDM_ERROR_INVALID_PARAMETER;
+ return NULL;
+fail_operation:
+ *error = TDM_ERROR_OPERATION_FAILED;
+ return NULL;
+}
+
tdm_error
exynos_hwc_window_set_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags)
{