tdm_sprd_output_data *output_data;
/* not fixed data below */
- int zpos;
-
tdm_hwc_window_info info;
int info_changed;
}
#endif
-tdm_error
-_sprd_output_insert_hwc_window(tdm_sprd_output_data *output, tdm_sprd_hwc_window_data *hwc_window_data)
-{
- tdm_sprd_hwc_window_data *item = NULL;
-
- RETURN_VAL_IF_FAIL(output, TDM_ERROR_INVALID_PARAMETER);
- RETURN_VAL_IF_FAIL(hwc_window_data, TDM_ERROR_INVALID_PARAMETER);
-
- 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
_sprd_output_get_changed_number(tdm_sprd_output_data *output_data)
{
}
hwc_window_data->output_data = output;
- hwc_window_data->zpos = 0;
if (info)
memcpy(&hwc_window_data->info, info, sizeof(tdm_hwc_window_info));
hwc_window_data = _sprd_output_hwc_window_create(output_data, NULL, error);
RETURN_VAL_IF_FAIL(hwc_window_data, NULL);
- _sprd_output_insert_hwc_window(output_data, hwc_window_data);
+ LIST_ADDTAIL(&hwc_window_data->link, &output_data->hwc_window_list);
TDM_DBG("hwc_window(%p) create", hwc_window_data);
if (error)
}
tdm_error
-sprd_output_hwc_validate(tdm_output *output, uint32_t *num_types)
+sprd_output_hwc_validate(tdm_output *output, tdm_hwc_window **composited_wnds,
+ uint32_t num_wnds, uint32_t *num_types)
{
tdm_sprd_output_data *output_data = output;
tdm_sprd_data *sprd_data = NULL;
}
tdm_error
-sprd_output_hwc_set_client_target_buffer(tdm_output *output, tbm_surface_h buffer,
- tdm_hwc_region damage, tdm_hwc_window **composited_wnds,
- uint32_t num_wnds)
+sprd_output_hwc_set_client_target_buffer(tdm_output *output, tbm_surface_h buffer, tdm_hwc_region damage)
{
tdm_sprd_output_data *output_data = output;
tdm_error err;
}
tdm_error
-sprd_hwc_window_set_zpos(tdm_hwc_window *hwc_window, int32_t zpos)
-{
- tdm_sprd_hwc_window_data *hwc_window_data = hwc_window;
- tdm_sprd_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;
-
- _sprd_output_insert_hwc_window(output_data, hwc_window_data);
-
- output_data->need_validate = 1;
-
- return TDM_ERROR_NONE;
-
-}
-
-tdm_error
sprd_hwc_window_set_composition_type(tdm_hwc_window *hwc_window,
tdm_hwc_window_composition comp_type)
{