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_set_buffer_damage = exynos_hwc_window_set_buffer_damage;
- exynos_func_hwc_window.hwc_window_set_zpos = exynos_hwc_window_set_zpos;
exynos_func_hwc_window.hwc_window_set_flags = exynos_hwc_window_set_flags;
exynos_func_hwc_window.hwc_window_unset_flags = exynos_hwc_window_unset_flags;
exynos_func_hwc_window.hwc_window_video_get_capability = exynos_hwc_window_video_get_capability;
tdm_error exynos_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer);
tbm_surface_queue_h exynos_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error);
tdm_error exynos_layer_unset_buffer(tdm_layer *layer);
-tdm_error exynos_hwc_window_set_zpos(tdm_hwc_window *hwc_window, int32_t zpos);
tdm_error exynos_hwc_window_set_composition_type(tdm_hwc_window *hwc_window,
tdm_hwc_window_composition composition_type);
tdm_error exynos_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_hwc_region damage);
return TDM_ERROR_NONE;
}
-tdm_error
-tdm_exynos_output_insert_hwc_window(tdm_exynos_output_data *output, tdm_exynos_hwc_window_data *hwc_window_data)
-{
- tdm_exynos_hwc_window_data *item = NULL;
-
- LIST_FOR_EACH_ENTRY_REV(item, &output->hwc_window_list, link) {
- if (item == hwc_window_data)
- return TDM_ERROR_OPERATION_FAILED;
-
- if (item->zpos <= hwc_window_data->zpos)
- break;
- }
-
- LIST_INSERT_AFTER(&item->link, &hwc_window_data->link);
-
- return TDM_ERROR_NONE;
-}
-
int
_exynos_output_get_changed_number(tdm_exynos_output_data *output_data)
{
hwc_window_data->assigned_layer_zpos = -1;
hwc_window_data->output_data = output;
- hwc_window_data->zpos = 0;
if (info)
memcpy(&hwc_window_data->info, info, sizeof(tdm_hwc_window_info));
if (hwc_window_data == NULL)
return NULL;
- tdm_exynos_output_insert_hwc_window(output_data, hwc_window_data);
+ LIST_ADDTAIL(&hwc_window_data->link, &output_data->hwc_window_list);
TDM_DBG("hwc_window_data(%p) create", hwc_window_data);
if (error)
tdm_hwc_region damage)
{
tdm_exynos_output_data *output_data = output;
- tdm_exynos_hwc_window_data *hwc_window_data = NULL;
tdm_error err;
RETURN_VAL_IF_FAIL(output_data != NULL, TDM_ERROR_INVALID_PARAMETER);
if (hwc_window_data == NULL)
return NULL;
- tdm_exynos_output_insert_hwc_window(output_data, hwc_window_data);
+ LIST_ADDTAIL(&hwc_window_data->link, &output_data->hwc_window_list);
output_data->video_hwc_window = hwc_window_data;
tdm_exynos_output_update_status(tdm_exynos_output_data *output_data,
tdm_output_conn_status status);
-tdm_error
-tdm_exynos_output_insert_hwc_window(tdm_exynos_output_data *output, tdm_exynos_hwc_window_data *hwc_window_data);
-
#endif /* _TDM_EXYNOS_OUTPUT_H_ */
tdm_exynos_output_data *output_data;
/* not fixed data below */
- int zpos;
-
tdm_hwc_window_info info;
int info_changed;
}
-tdm_error
-exynos_hwc_window_set_zpos(tdm_hwc_window *hwc_window, int32_t zpos)
-{
- tdm_exynos_hwc_window_data *hwc_window_data = hwc_window;
- tdm_exynos_output_data *output_data;
-
- RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
- RETURN_VAL_IF_FAIL(zpos < 256, TDM_ERROR_INVALID_PARAMETER);
-
- output_data = hwc_window_data->output_data;
- RETURN_VAL_IF_FAIL(output_data != NULL, TDM_ERROR_INVALID_PARAMETER);
-
- if (hwc_window_data->zpos == zpos)
- return TDM_ERROR_NONE;
-
- LIST_DEL(&hwc_window_data->link);
-
- hwc_window_data->zpos = zpos;
-
- tdm_exynos_output_insert_hwc_window(output_data, hwc_window_data);
-
- output_data->need_validate = 1;
-
- return TDM_ERROR_NONE;
-
-}
-
tdm_error
exynos_hwc_window_set_composition_type(tdm_hwc_window *hwc_window,
tdm_hwc_window_composition comp_type)