EAPI extern int ECORE_DRM2_EVENT_OUTPUT_CHANGED; EAPI extern int ECORE_DRM2_EVENT_ACTIVATE; EAPI int ecore_drm2_init(void); EAPI int ecore_drm2_shutdown(void); EAPI int ecore_drm2_event_handle(int fd, Ecore_Drm2_Context *drmctx); EAPI Ecore_Drm2_Device *ecore_drm2_device_find(const char *seat, unsigned int tty); EAPI int ecore_drm2_device_open(Ecore_Drm2_Device *device); EAPI void ecore_drm2_device_close(Ecore_Drm2_Device *device); EAPI void ecore_drm2_device_free(Ecore_Drm2_Device *device); EAPI int ecore_drm2_device_clock_id_get(Ecore_Drm2_Device *device); EAPI void ecore_drm2_device_cursor_size_get(Ecore_Drm2_Device *device, int *width, int *height); EAPI void ecore_drm2_device_pointer_xy_get(Ecore_Drm2_Device *device, int *x, int *y); EAPI void ecore_drm2_device_pointer_warp(Ecore_Drm2_Device *device, int x, int y); EAPI Eina_Bool ecore_drm2_device_pointer_left_handed_set(Ecore_Drm2_Device *device, Eina_Bool left); EAPI void ecore_drm2_device_window_set(Ecore_Drm2_Device *device, unsigned int window); EAPI void ecore_drm2_device_pointer_max_set(Ecore_Drm2_Device *device, int w, int h); EAPI void ecore_drm2_device_keyboard_cached_context_set(Ecore_Drm2_Device *device, void *context); EAPI void ecore_drm2_device_keyboard_cached_keymap_set(Ecore_Drm2_Device *device, void *keymap); EAPI unsigned int *ecore_drm2_device_crtcs_get(Ecore_Drm2_Device *device, int *num); EAPI void ecore_drm2_device_screen_size_range_get(Ecore_Drm2_Device *device, int *minw, int *minh, int *maxw, int *maxh); EAPI void ecore_drm2_device_calibrate(Ecore_Drm2_Device *device, int w, int h); EAPI Eina_Bool ecore_drm2_device_vt_set(Ecore_Drm2_Device *device, int vt); EAPI Eina_Bool ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device); EAPI Eina_Bool ecore_drm2_outputs_create(Ecore_Drm2_Device *device); EAPI void ecore_drm2_outputs_destroy(Ecore_Drm2_Device *device); EAPI const Eina_List *ecore_drm2_outputs_get(Ecore_Drm2_Device *device); EAPI int ecore_drm2_output_dpms_get(Ecore_Drm2_Output *output); EAPI void ecore_drm2_output_dpms_set(Ecore_Drm2_Output *output, int level); EAPI char *ecore_drm2_output_edid_get(Ecore_Drm2_Output *output); EAPI Eina_Bool ecore_drm2_output_backlight_get(Ecore_Drm2_Output *output); EAPI Ecore_Drm2_Output *ecore_drm2_output_find(Ecore_Drm2_Device *device, int x, int y); EAPI void ecore_drm2_output_geometry_get(Ecore_Drm2_Output *output, int *x, int *y, int *w, int *h); EAPI void ecore_drm2_output_dpi_get(Ecore_Drm2_Output *output, int *xdpi, int *ydpi); EAPI unsigned int ecore_drm2_output_crtc_get(Ecore_Drm2_Output *output); EAPI Ecore_Drm2_Fb *ecore_drm2_output_latest_fb_get(Ecore_Drm2_Output *output); EAPI void ecore_drm2_output_crtc_size_get(Ecore_Drm2_Output *output, int *w, int *h); EAPI Eina_Bool ecore_drm2_output_primary_get(Ecore_Drm2_Output *output); EAPI void ecore_drm2_output_primary_set(Ecore_Drm2_Output *output, Eina_Bool primary); EAPI Eina_Bool ecore_drm2_output_enabled_get(Ecore_Drm2_Output *output); EAPI void ecore_drm2_output_enabled_set(Ecore_Drm2_Output *output, Eina_Bool enabled); EAPI void ecore_drm2_output_physical_size_get(Ecore_Drm2_Output *output, int *w, int *h); EAPI const Eina_List *ecore_drm2_output_modes_get(Ecore_Drm2_Output *output); EAPI void ecore_drm2_output_mode_info_get(Ecore_Drm2_Output_Mode *mode, int *w, int *h, unsigned int *refresh, unsigned int *flags); EAPI Eina_Bool ecore_drm2_output_mode_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode, int x, int y); EAPI char *ecore_drm2_output_name_get(Ecore_Drm2_Output *output); EAPI char *ecore_drm2_output_model_get(Ecore_Drm2_Output *output); EAPI Eina_Bool ecore_drm2_output_connected_get(Ecore_Drm2_Output *output); EAPI Eina_Bool ecore_drm2_output_cloned_get(Ecore_Drm2_Output *output); EAPI unsigned int ecore_drm2_output_connector_type_get(Ecore_Drm2_Output *output); EAPI void ecore_drm2_output_resolution_get(Ecore_Drm2_Output *output, int *w, int *h, unsigned int *refresh); EAPI Eina_Bool ecore_drm2_output_possible_crtc_get(Ecore_Drm2_Output *output, unsigned int crtc); EAPI void ecore_drm2_output_gamma_set(Ecore_Drm2_Output *output, uint16_t size, uint16_t *red, uint16_t *green, uint16_t *blue); EAPI int ecore_drm2_output_supported_rotations_get(Ecore_Drm2_Output *output); EAPI Eina_Bool ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation); EAPI Ecore_Drm2_Fb *ecore_drm2_fb_create(int fd, int width, int height, int depth, int bpp, unsigned int format); EAPI Ecore_Drm2_Fb *ecore_drm2_fb_gbm_create(int fd, int width, int height, int depth, int bpp, unsigned int format, unsigned int handle, unsigned int stride, void *bo); EAPI void ecore_drm2_fb_destroy(Ecore_Drm2_Fb *fb); EAPI void *ecore_drm2_fb_data_get(Ecore_Drm2_Fb *fb); EAPI unsigned int ecore_drm2_fb_size_get(Ecore_Drm2_Fb *fb); EAPI unsigned int ecore_drm2_fb_stride_get(Ecore_Drm2_Fb *fb); EAPI void ecore_drm2_fb_dirty(Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned int count); EAPI int ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output); EAPI Eina_Bool ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output); EAPI Eina_Bool ecore_drm2_fb_busy_get(Ecore_Drm2_Fb *fb); EAPI void ecore_drm2_fb_busy_set(Ecore_Drm2_Fb *fb, Eina_Bool busy); EAPI Eina_Bool ecore_drm2_fb_release(Ecore_Drm2_Output *o, Eina_Bool panic); EAPI void ecore_drm2_output_user_data_set(Ecore_Drm2_Output *o, void *data); EAPI void ecore_drm2_output_release_handler_set(Ecore_Drm2_Output *output, Ecore_Drm2_Release_Handler handler, void *data); EAPI void *ecore_drm2_fb_bo_get(Ecore_Drm2_Fb *fb);