8 #include "tdm_backend_drm_types.h"
11 hal_tdm_error drm_display_get_capability(hal_tdm_display *display, hal_tdm_caps_display *caps);
12 hal_tdm_error drm_display_get_pp_capability(hal_tdm_display *display, hal_tdm_caps_pp *caps);
13 hal_tdm_output **drm_display_get_outputs(hal_tdm_display *display, int *count, hal_tdm_error *error);
14 hal_tdm_error drm_display_get_fd(hal_tdm_display *display, int *fd);
15 hal_tdm_error drm_display_handle_events(hal_tdm_display *display);
16 hal_tdm_pp* drm_display_create_pp(hal_tdm_display *display, hal_tdm_error *error);
19 hal_tdm_error drm_output_get_capability(hal_tdm_output *output, hal_tdm_caps_output *caps);
20 hal_tdm_error drm_output_set_property(hal_tdm_output *output, unsigned int id, hal_tdm_value value);
21 hal_tdm_error drm_output_get_property(hal_tdm_output *output, unsigned int id, hal_tdm_value *value);
22 hal_tdm_error drm_output_wait_vblank(hal_tdm_output *output, int interval, int sync, void *user_data);
23 hal_tdm_error drm_output_set_vblank_handler(hal_tdm_output *output, hal_tdm_output_vblank_handler func);
24 hal_tdm_error drm_output_commit(hal_tdm_output *output, int sync, void *user_data);
25 hal_tdm_error drm_output_set_commit_handler(hal_tdm_output *output, hal_tdm_output_commit_handler func);
26 hal_tdm_error drm_output_set_dpms(hal_tdm_output *output, hal_tdm_output_dpms dpms_value);
27 hal_tdm_error drm_output_get_dpms(hal_tdm_output *output, hal_tdm_output_dpms *dpms_value);
28 hal_tdm_error drm_output_set_mode(hal_tdm_output *output, const hal_tdm_output_mode *mode);
29 hal_tdm_error drm_output_get_mode(hal_tdm_output *output, const hal_tdm_output_mode **mode);
30 hal_tdm_error drm_output_set_status_handler(hal_tdm_output *output, hal_tdm_output_status_handler func, void *user_data);
31 hal_tdm_hwc *drm_output_get_hwc(hal_tdm_output *output, hal_tdm_error *error);
34 hal_tdm_hwc_window *drm_hwc_create_window(hal_tdm_hwc *hwc, hal_tdm_error *error);
35 hal_tdm_error drm_hwc_get_video_supported_formats(hal_tdm_hwc *hwc, const tbm_format **formats, int *count);
36 hal_tdm_error drm_hwc_get_capabilities(hal_tdm_hwc *hwc, hal_tdm_hwc_capability *capabilities);
37 hal_tdm_error drm_hwc_get_available_properties(hal_tdm_hwc *hwc, const hal_tdm_prop **props, int *count);
38 tbm_surface_queue_h drm_hwc_get_client_target_buffer_queue(hal_tdm_hwc *hwc, hal_tdm_error *error);
39 hal_tdm_error drm_hwc_set_client_target_buffer(hal_tdm_hwc *hwc, tbm_surface_h buffer, hal_tdm_region damage);
40 hal_tdm_error drm_hwc_validate(hal_tdm_hwc *hwc, hal_tdm_hwc_window **composited_wnds, uint32_t num_wnds, uint32_t *num_types);
41 hal_tdm_error drm_hwc_get_changed_composition_types(hal_tdm_hwc *hwc, uint32_t *num_elements, hal_tdm_hwc_window **hwc_wnds, hal_tdm_hwc_window_composition *composition_types);
42 hal_tdm_error drm_hwc_accept_validation(hal_tdm_hwc *hwc);
43 hal_tdm_error drm_hwc_commit(hal_tdm_hwc *hwc, int sync, void *user_data);
44 hal_tdm_error drm_hwc_set_commit_handler(hal_tdm_hwc *hwc, hal_tdm_hwc_commit_handler func);
46 /* hwc_window funcs */
47 void drm_hwc_window_destroy(hal_tdm_hwc_window *hwc_window);
48 hal_tdm_error drm_hwc_window_set_composition_type(hal_tdm_hwc_window *hwc_window, hal_tdm_hwc_window_composition composition_type);
49 hal_tdm_error drm_hwc_window_set_buffer_damage(hal_tdm_hwc_window *hwc_window, hal_tdm_region damage);
50 hal_tdm_error drm_hwc_window_set_info(hal_tdm_hwc_window *hwc_window, hal_tdm_hwc_window_info *info);
51 hal_tdm_error drm_hwc_window_set_buffer(hal_tdm_hwc_window *hwc_window, tbm_surface_h surface);
52 hal_tdm_error drm_hwc_window_set_property(hal_tdm_hwc_window *hwc_window, unsigned int id, hal_tdm_value value);
53 hal_tdm_error drm_hwc_window_get_property(hal_tdm_hwc_window *hwc_window, unsigned int id, hal_tdm_value *value);
54 hal_tdm_error drm_hwc_window_get_constraints(hal_tdm_hwc_window *hwc_window, int *constraints);
55 hal_tdm_error drm_hwc_window_set_name(hal_tdm_hwc_window *hwc_window, const char *name);
56 hal_tdm_error drm_hwc_window_set_cursor_image(hal_tdm_hwc_window *hwc_window, int width, int height, int stride, void *ptr);
59 void drm_pp_destroy(hal_tdm_pp *pp);
60 hal_tdm_error drm_pp_set_info(hal_tdm_pp *pp, hal_tdm_info_pp *info);
61 hal_tdm_error drm_pp_attach(hal_tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst);
62 hal_tdm_error drm_pp_commit(hal_tdm_pp *pp);
63 hal_tdm_error drm_pp_set_done_handler(hal_tdm_pp *pp, hal_tdm_pp_done_handler func, void *user_data);
66 hal_tdm_error tdm_drm_display_create_output_list(tdm_drm_display *display_data);
67 void tdm_drm_display_destroy_output_list(tdm_drm_display *display_data);
68 void tdm_drm_display_update_output_status(tdm_drm_display *display_data);
69 hal_tdm_error tdm_drm_display_create_layer_list(tdm_drm_display *display_data);
72 tdm_drm_layer * drm_output_data_get_layer_data(tdm_drm_output *output_data, int layer_zops);
75 hal_tdm_error drm_hwc_initailize_target_window(tdm_drm_hwc *hwc_data);
76 hal_tdm_error drm_hwc_target_window_set_info(tdm_drm_hwc *hwc_data, int width, int height);
79 hal_tdm_error drm_layer_get_capability(tdm_drm_layer *layer, tdm_drm_caps_layer *caps);
80 hal_tdm_error drm_layer_set_property(tdm_drm_layer *layer, unsigned int id, hal_tdm_value value);
81 hal_tdm_error drm_layer_get_property(tdm_drm_layer *layer, unsigned int id, hal_tdm_value *value);
82 hal_tdm_error drm_layer_set_info(tdm_drm_layer *layer, tdm_drm_layer_info *info);
83 hal_tdm_error drm_layer_get_info(tdm_drm_layer *layer, tdm_drm_layer_info *info);
84 hal_tdm_error drm_layer_set_buffer(tdm_drm_layer *layer, tbm_surface_h buffer);
85 hal_tdm_error drm_layer_unset_buffer(tdm_drm_layer *layer);
88 hal_tdm_error tdm_drm_pp_get_capability(tdm_drm_display *display_data, hal_tdm_caps_pp *caps);
89 hal_tdm_pp *tdm_drm_pp_create(tdm_drm_display *display_data, hal_tdm_error *error);
90 void tdm_drm_pp_handler(unsigned int prop_id, unsigned int *buf_idx, unsigned int tv_sec, unsigned int tv_usec, void *data);
91 void tdm_drm_pp_cb(int fd, unsigned int prop_id, unsigned int *buf_idx, unsigned int tv_sec, unsigned int tv_usec, void *user_data);
94 uint32_t tdm_drm_format_to_drm_format(tbm_format format);
95 tbm_format tdm_drm_format_to_tbm_format(uint32_t format);
97 #endif /* _TDM_DRM_H_ */