memset(&sprd_func_hwc_window, 0, sizeof(sprd_func_hwc_window));
sprd_func_hwc_window.hwc_window_destroy = sprd_hwc_window_destroy;
- sprd_func_hwc_window.hwc_window_get_buffer_queue = NULL;
+ sprd_func_hwc_window.hwc_window_get_buffer_queue = sprd_hwc_window_get_buffer_queue;
+ sprd_func_hwc_window.hwc_window_free_buffer_queue = sprd_hwc_window_free_buffer_queue;
sprd_func_hwc_window.hwc_window_set_composition_type = sprd_hwc_window_set_composition_type;
sprd_func_hwc_window.hwc_window_set_buffer_damage = sprd_hwc_window_set_buffer_damage;
sprd_func_hwc_window.hwc_window_set_info = sprd_hwc_window_set_info;
sprd_func_hwc_window.hwc_window_set_buffer = sprd_hwc_window_set_buffer;
sprd_func_hwc_window.hwc_window_set_property = sprd_hwc_window_set_property;
sprd_func_hwc_window.hwc_window_get_property = sprd_hwc_window_get_property;
+ sprd_func_hwc_window.hwc_window_get_preparation_types = sprd_hwc_window_get_preparation_types;
}
memset(&sprd_func_layer, 0, sizeof(sprd_func_layer));
tdm_error sprd_hwc_commit(tdm_hwc *hwc, int sync, void *user_data);
tdm_error sprd_hwc_set_commit_handler(tdm_hwc *hwc, tdm_hwc_commit_handler func);
-void sprd_hwc_window_destroy(tdm_hwc_window *hwc_window);
-tdm_error sprd_hwc_window_set_composition_type(tdm_hwc_window *hwc_window, tdm_hwc_window_composition composition_type);
-tdm_error sprd_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_region damage);
-tdm_error sprd_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info);
-tdm_error sprd_hwc_window_get_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info);
-tdm_error sprd_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h surface);
-tdm_error sprd_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value value);
-tdm_error sprd_hwc_window_get_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value *value);
+void sprd_hwc_window_destroy(tdm_hwc_window *hwc_window);
+tdm_error sprd_hwc_window_set_composition_type(tdm_hwc_window *hwc_window, tdm_hwc_window_composition composition_type);
+tdm_error sprd_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_region damage);
+tdm_error sprd_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info);
+tdm_error sprd_hwc_window_get_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info);
+tdm_error sprd_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h surface);
+tdm_error sprd_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value value);
+tdm_error sprd_hwc_window_get_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value *value);
+tbm_surface_queue_h sprd_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error);
+void sprd_hwc_window_free_buffer_queue(tdm_hwc_window *hwc_window, tbm_surface_queue_h queue);
+tdm_error sprd_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, int *preparation_types);
void sprd_pp_destroy(tdm_pp *pp);
tdm_error sprd_pp_set_info(tdm_pp *pp, tdm_info_pp *info);
//TODO:
return TDM_ERROR_NONE;
-}
\ No newline at end of file
+}
+
+tbm_surface_queue_h
+sprd_hwc_window_get_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error)
+{
+ tdm_sprd_hwc_data *hwc_data = NULL;
+ tdm_sprd_hwc_window_data *hwc_window_data = NULL;
+ tdm_sprd_hwc_window_data *target_hwc_window_data = NULL;
+
+ if (error)
+ *error = TDM_ERROR_INVALID_PARAMETER;
+
+ hwc_window_data = (tdm_sprd_hwc_window_data *)hwc_window;
+ RETURN_VAL_IF_FAIL(hwc_window_data != NULL, NULL);
+
+ hwc_data = hwc_window_data->hwc_data;
+ RETURN_VAL_IF_FAIL(hwc_data != NULL, NULL);
+
+ target_hwc_window_data = hwc_data->target_hwc_window;
+ RETURN_VAL_IF_FAIL(target_hwc_window_data != NULL, NULL);
+
+ RETURN_VAL_IF_FAIL(target_hwc_window_data->tqueue != NULL, NULL);
+
+ if (error)
+ *error = TDM_ERROR_NONE;
+
+ return target_hwc_window_data->tqueue;
+}
+
+void
+sprd_hwc_window_free_buffer_queue(tdm_hwc_window *hwc_window, tbm_surface_queue_h queue)
+{
+ return;
+}
+
+tdm_error
+sprd_hwc_window_get_preparation_types(tdm_hwc_window *hwc_window, int *preparation_types)
+{
+ tdm_sprd_hwc_window_data *hwc_window_data = NULL;
+
+ hwc_window_data = (tdm_sprd_hwc_window_data *)hwc_window;
+
+ RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
+ RETURN_VAL_IF_FAIL(preparation_types != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ *preparation_types = hwc_window_data->preparation_types;
+
+ return TDM_ERROR_NONE;
+}