Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Ecore_Drm2.h File Reference

Ecore functions for dealing with drm, virtual terminals. More...

Data Structures

struct  _Ecore_Drm2_Event_Output_Changed
 
struct  _Ecore_Drm2_Event_Activate
 
struct  _Ecore_Drm2_Context
 

Typedefs

typedef enum _Ecore_Drm2_Rotation Ecore_Drm2_Rotation
 
typedef enum _Ecore_Drm2_Fb_Status Ecore_Drm2_Fb_Status
 
typedef enum _Ecore_Drm2_Relative_Mode Ecore_Drm2_Relative_Mode
 
typedef struct _Ecore_Drm2_Device Ecore_Drm2_Device
 
typedef struct _Ecore_Drm2_Fb Ecore_Drm2_Fb
 
typedef struct _Ecore_Drm2_Output Ecore_Drm2_Output
 
typedef struct _Ecore_Drm2_Output_Mode Ecore_Drm2_Output_Mode
 
typedef struct _Ecore_Drm2_Plane Ecore_Drm2_Plane
 
typedef struct _Ecore_Drm2_Event_Output_Changed Ecore_Drm2_Event_Output_Changed
 
typedef struct _Ecore_Drm2_Event_Activate Ecore_Drm2_Event_Activate
 
typedef struct _Ecore_Drm2_Context Ecore_Drm2_Context
 
typedef void(* Ecore_Drm2_Release_Handler) (void *data, Ecore_Drm2_Fb *b)
 
typedef void(* Ecore_Drm2_Fb_Status_Handler) (Ecore_Drm2_Fb *b, Ecore_Drm2_Fb_Status status, void *data)
 

Enumerations

enum  _Ecore_Drm2_Rotation {
  ECORE_DRM2_ROTATION_NORMAL = 1 ,
  ECORE_DRM2_ROTATION_90 = 2 ,
  ECORE_DRM2_ROTATION_180 = 4 ,
  ECORE_DRM2_ROTATION_270 = 8 ,
  ECORE_DRM2_ROTATION_REFLECT_X = 16 ,
  ECORE_DRM2_ROTATION_REFLECT_Y = 32
}
 
enum  _Ecore_Drm2_Fb_Status {
  ECORE_DRM2_FB_STATUS_SCANOUT_ON = 1 ,
  ECORE_DRM2_FB_STATUS_SCANOUT_OFF = 2 ,
  ECORE_DRM2_FB_STATUS_RELEASE = 4 ,
  ECORE_DRM2_FB_STATUS_DELETED = 8 ,
  ECORE_DRM2_FB_STATUS_PLANE_ASSIGN = 16 ,
  ECORE_DRM2_FB_STATUS_PLANE_RELEASE = 32
}
 
enum  _Ecore_Drm2_Relative_Mode {
  ECORE_DRM2_RELATIVE_MODE_UNKNOWN ,
  ECORE_DRM2_RELATIVE_MODE_NONE ,
  ECORE_DRM2_RELATIVE_MODE_CLONE ,
  ECORE_DRM2_RELATIVE_MODE_TO_LEFT ,
  ECORE_DRM2_RELATIVE_MODE_TO_RIGHT ,
  ECORE_DRM2_RELATIVE_MODE_TO_ABOVE ,
  ECORE_DRM2_RELATIVE_MODE_TO_BELOW
}
 

Functions

EAPI int ecore_drm2_init (void)
 Initialize the Ecore_Drm2 library. More...
 
EAPI int ecore_drm2_shutdown (void)
 Shutdown the Ecore_Drm2 library. More...
 
EAPI int ecore_drm2_event_handle (Ecore_Drm2_Device *dev, Ecore_Drm2_Context *drmctx)
 Read and process pending Drm events. More...
 
EAPI Ecore_Drm2_Device * ecore_drm2_device_open (const char *seat, unsigned int tty)
 Try to open the Ecore_Drm2_Device for a given seat. More...
 
EAPI void ecore_drm2_device_close (Ecore_Drm2_Device *device)
 Close an open Ecore_Drm2_Device. More...
 
EAPI int ecore_drm2_device_clock_id_get (Ecore_Drm2_Device *device)
 Get the type of clock used by a given Ecore_Drm2_Device. More...
 
EAPI void ecore_drm2_device_cursor_size_get (Ecore_Drm2_Device *device, int *width, int *height)
 Get the size of the cursor supported by a given Ecore_Drm2_Device. More...
 
EAPI void ecore_drm2_device_pointer_xy_get (Ecore_Drm2_Device *device, int *x, int *y)
 Get the current pointer position. More...
 
EAPI void ecore_drm2_device_pointer_warp (Ecore_Drm2_Device *device, int x, int y)
 Warp the pointer position to given coordinates. More...
 
EAPI Eina_Bool ecore_drm2_device_pointer_left_handed_set (Ecore_Drm2_Device *device, Eina_Bool left)
 Set a left handed mode for the given device. More...
 
EAPI void ecore_drm2_device_window_set (Ecore_Drm2_Device *device, unsigned int window)
 Set which window is to be used for input events. More...
 
EAPI void ecore_drm2_device_pointer_max_set (Ecore_Drm2_Device *device, int w, int h)
 Set maximium position that pointer device is allowed to move. More...
 
EAPI void ecore_drm2_device_pointer_accel_speed_set (Ecore_Drm2_Device *device, double speed)
 Set pointer acceleration speed. More...
 
EAPI void ecore_drm2_device_pointer_accel_profile_set (Ecore_Drm2_Device *device, uint32_t profile)
 Set pointer acceleration profile. More...
 
EAPI Eina_Bool ecore_drm2_device_pointer_rotation_set (Ecore_Drm2_Device *device, int rotation)
 Set pointer value rotation. More...
 
EAPI void ecore_drm2_device_touch_tap_to_click_enabled_set (Ecore_Drm2_Device *device, Eina_Bool enabled)
 Enable or disable pointer tap-to-click. More...
 
EAPI void ecore_drm2_device_keyboard_info_set (Ecore_Drm2_Device *device, void *context, void *keymap, int group)
 Set info to be used on keyboards. More...
 
EAPI void ecore_drm2_device_keyboard_group_set (Ecore_Drm2_Device *device, int group)
 Set a group layout to be used on keyboards. More...
 
EAPI unsigned int * ecore_drm2_device_crtcs_get (Ecore_Drm2_Device *device, int *num)
 Get the crtcs of a given device. More...
 
EAPI void ecore_drm2_device_screen_size_range_get (Ecore_Drm2_Device *device, int *minw, int *minh, int *maxw, int *maxh)
 Get the minimum and maximum screen size range. More...
 
EAPI void ecore_drm2_device_calibrate (Ecore_Drm2_Device *device, int w, int h)
 Calibrate any input devices for given screen size. More...
 
EAPI Eina_Bool ecore_drm2_device_vt_set (Ecore_Drm2_Device *device, int vt)
 Try to switch to a given virtual terminal. More...
 
EAPI Eina_Bool ecore_drm2_device_prefer_shadow (Ecore_Drm2_Device *device)
 Get if a given device prefers the use of shadow buffers. More...
 
EAPI void ecore_drm2_device_preferred_depth_get (Ecore_Drm2_Device *device, int *depth, int *bpp)
 Get the default depth & bpp from a given device. More...
 
EAPI Eina_Bool ecore_drm2_outputs_create (Ecore_Drm2_Device *device)
 Iterate drm resources and create outputs. More...
 
EAPI void ecore_drm2_outputs_destroy (Ecore_Drm2_Device *device)
 Destroy any created outputs. More...
 
EAPI const Eina_Listecore_drm2_outputs_get (Ecore_Drm2_Device *device)
 Get the list of outputs from a drm device. More...
 
EAPI int ecore_drm2_output_dpms_get (Ecore_Drm2_Output *output)
 Get the dpms level of a given output. More...
 
EAPI void ecore_drm2_output_dpms_set (Ecore_Drm2_Output *output, int level)
 Set the dpms level of a given output. More...
 
EAPI char * ecore_drm2_output_edid_get (Ecore_Drm2_Output *output)
 Get the edid of a given output. More...
 
EAPI Eina_Bool ecore_drm2_output_backlight_get (Ecore_Drm2_Output *output)
 Get if a given output has a backlight. More...
 
EAPI Ecore_Drm2_Output * ecore_drm2_output_find (Ecore_Drm2_Device *device, int x, int y)
 Find an output at the given position. More...
 
EAPI void ecore_drm2_output_dpi_get (Ecore_Drm2_Output *output, int *xdpi, int *ydpi)
 Get the dpi of a given output. More...
 
EAPI unsigned int ecore_drm2_output_crtc_get (Ecore_Drm2_Output *output)
 Get the id of the crtc that an output is using. More...
 
EAPI Ecore_Drm2_Fb * ecore_drm2_output_latest_fb_get (Ecore_Drm2_Output *output)
 Return the most recently set Ecore_Drm2_Fb for a given output. More...
 
EAPI Eina_Bool ecore_drm2_output_primary_get (Ecore_Drm2_Output *output)
 Get if a given output is marked as the primary output. More...
 
EAPI void ecore_drm2_output_primary_set (Ecore_Drm2_Output *output, Eina_Bool primary)
 Set a given output to be primary. More...
 
EAPI Eina_Bool ecore_drm2_output_enabled_get (Ecore_Drm2_Output *output)
 Get if a given output is enabled. More...
 
EAPI void ecore_drm2_output_enabled_set (Ecore_Drm2_Output *output, Eina_Bool enabled)
 Set if a given output is enabled. More...
 
EAPI void ecore_drm2_output_physical_size_get (Ecore_Drm2_Output *output, int *w, int *h)
 Get the physical size of a given output. More...
 
EAPI const Eina_Listecore_drm2_output_modes_get (Ecore_Drm2_Output *output)
 Get a list of the modes supported on a given output. More...
 
EAPI void ecore_drm2_output_mode_info_get (Ecore_Drm2_Output_Mode *mode, int *w, int *h, unsigned int *refresh, unsigned int *flags)
 Get information from an existing output mode. More...
 
EAPI Eina_Bool ecore_drm2_output_mode_set (Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode, int x, int y)
 Set a given mode to be used on a given output. More...
 
EAPI char * ecore_drm2_output_name_get (Ecore_Drm2_Output *output)
 Get the name of a given output. More...
 
EAPI char * ecore_drm2_output_model_get (Ecore_Drm2_Output *output)
 Get the model of a given output. More...
 
EAPI Eina_Bool ecore_drm2_output_connected_get (Ecore_Drm2_Output *output)
 Get if a given output is connected. More...
 
EAPI Eina_Bool ecore_drm2_output_cloned_get (Ecore_Drm2_Output *output)
 Get if a given output is cloned. More...
 
EAPI unsigned int ecore_drm2_output_connector_type_get (Ecore_Drm2_Output *output)
 Get the connector type of a given output. More...
 
EAPI void ecore_drm2_output_info_get (Ecore_Drm2_Output *output, int *x, int *y, int *w, int *h, unsigned int *refresh)
 Get the geometry and refresh rate for a given output. More...
 
EAPI Eina_Bool ecore_drm2_output_possible_crtc_get (Ecore_Drm2_Output *output, unsigned int crtc)
 Get if an output can be used on a given crtc. More...
 
EAPI void ecore_drm2_output_gamma_set (Ecore_Drm2_Output *output, uint16_t size, uint16_t *red, uint16_t *green, uint16_t *blue)
 Set the gamma level of an Ecore_Drm_Output. More...
 
EAPI int ecore_drm2_output_supported_rotations_get (Ecore_Drm2_Output *output)
 Get the supported rotations of a given output. More...
 
EAPI Eina_Bool ecore_drm2_output_rotation_set (Ecore_Drm2_Output *output, int rotation)
 Set a rotation on a given output. More...
 
EAPI int ecore_drm2_output_rotation_get (Ecore_Drm2_Output *output)
 Get current output rotation. More...
 
EAPI void ecore_drm2_output_user_data_set (Ecore_Drm2_Output *o, void *data)
 Set the user data for the output's page flip handler. More...
 
EAPI void * ecore_drm2_output_user_data_get (Ecore_Drm2_Output *output)
 Get the user data for a given output. More...
 
EAPI unsigned int ecore_drm2_output_subpixel_get (const Ecore_Drm2_Output *output)
 Get the subpixel state of the output. More...
 
EAPI void ecore_drm2_output_relative_mode_set (Ecore_Drm2_Output *output, Ecore_Drm2_Relative_Mode mode)
 Set the relative mode for an output. More...
 
EAPI Ecore_Drm2_Relative_Mode ecore_drm2_output_relative_mode_get (Ecore_Drm2_Output *output)
 Get the relative mode of an output. More...
 
EAPI void ecore_drm2_output_relative_to_set (Ecore_Drm2_Output *output, const char *relative)
 Set which output a given output is relative to. More...
 
EAPI const char * ecore_drm2_output_relative_to_get (Ecore_Drm2_Output *output)
 Get which output is relative to a given output. More...
 
EAPI Ecore_Drm2_Fb * ecore_drm2_fb_create (Ecore_Drm2_Device *dev, int width, int height, int depth, int bpp, unsigned int format)
 Create a new framebuffer object. More...
 
EAPI Ecore_Drm2_Fb * ecore_drm2_fb_gbm_create (Ecore_Drm2_Device *dev, int width, int height, int depth, int bpp, unsigned int format, unsigned int handle, unsigned int stride, void *bo)
 
EAPI void * ecore_drm2_fb_data_get (Ecore_Drm2_Fb *fb)
 Get a framebuffer's mmap'd data. More...
 
EAPI unsigned int ecore_drm2_fb_size_get (Ecore_Drm2_Fb *fb)
 Get a framebuffer's size. More...
 
EAPI unsigned int ecore_drm2_fb_stride_get (Ecore_Drm2_Fb *fb)
 Get a framebuffer's stride. More...
 
EAPI void ecore_drm2_fb_dirty (Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned int count)
 Mark regions of a framebuffer as dirty. More...
 
EAPI int ecore_drm2_fb_flip (Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output)
 Schedule a pageflip to the given Ecore_Drm2_Fb. More...
 
EAPI Eina_Bool ecore_drm2_fb_flip_complete (Ecore_Drm2_Output *output)
 Must be called by a page flip handler when the flip completes. More...
 
EAPI Eina_Bool ecore_drm2_fb_busy_get (Ecore_Drm2_Fb *fb)
 Return the Ecore_Drm2_Fb's busy status. More...
 
EAPI Eina_Bool ecore_drm2_fb_release (Ecore_Drm2_Output *o, Eina_Bool panic)
 Try to force a framebuffer release for an output. More...
 
EAPI void * ecore_drm2_fb_bo_get (Ecore_Drm2_Fb *fb)
 Get the Framebuffer's gbm buffer object. More...
 
EAPI Ecore_Drm2_Fb * ecore_drm2_fb_dmabuf_import (Ecore_Drm2_Device *dev, int width, int height, int depth, int bpp, unsigned int format, unsigned int strides[4], int dmabuf_fd[4], int dmabuf_fd_count)
 Import a dmabuf object as a Framebuffer. More...
 
EAPI void ecore_drm2_fb_discard (Ecore_Drm2_Fb *fb)
 Discard a framebuffer object. More...
 
EAPI Ecore_Drm2_Plane * ecore_drm2_plane_assign (Ecore_Drm2_Output *output, Ecore_Drm2_Fb *fb, int x, int y)
 Find a hardware plane where a given Ecore_Drm2_Fb can go based on format and size. More...
 
EAPI void ecore_drm2_plane_release (Ecore_Drm2_Plane *plane)
 Remove a hardware plane from display. More...
 
EAPI void ecore_drm2_plane_destination_set (Ecore_Drm2_Plane *plane, int x, int y, int w, int h)
 Set plane destination values. More...
 
EAPI Eina_Bool ecore_drm2_plane_fb_set (Ecore_Drm2_Plane *plane, Ecore_Drm2_Fb *fb)
 Set plane frame buffer. More...
 
EAPI void ecore_drm2_fb_status_handler_set (Ecore_Drm2_Fb *fb, Ecore_Drm2_Fb_Status_Handler handler, void *data)
 Register a callback for buffer status updates. More...
 
EAPI Eina_Bool ecore_drm2_output_blanktime_get (Ecore_Drm2_Output *output, int sequence, long *sec, long *usec)
 Get the time of the last vblank. More...
 
EAPI int ecore_drm2_device_fd_get (Ecore_Drm2_Device *device)
 Get the fd of an Ecore_Drm2_Device. More...
 
EAPI Eina_Bool ecore_drm2_output_pending_get (Ecore_Drm2_Output *output)
 Check if there's a pageflip in progress for an output. More...
 
EAPI Eina_Bool ecore_drm2_output_background_color_set (Ecore_Drm2_Output *output, uint64_t r, uint64_t g, uint64_t b, uint64_t a)
 Set the background color of an output's crtc. More...
 
EAPI Eina_Bool ecore_drm2_vblank_supported (Ecore_Drm2_Device *dev)
 Check if vblank is supported by the current video driver. More...
 

Variables

EAPI int ECORE_DRM2_EVENT_OUTPUT_CHANGED
 
EAPI int ECORE_DRM2_EVENT_ACTIVATE
 

Detailed Description

Ecore functions for dealing with drm, virtual terminals.

Function Documentation

◆ ecore_drm2_output_background_color_set()

EAPI Eina_Bool ecore_drm2_output_background_color_set ( Ecore_Drm2_Output *  output,
uint64_t  r,
uint64_t  g,
uint64_t  b,
uint64_t  a 
)

Set the background color of an output's crtc.

Parameters
output
r
g
b
a
Returns
EINA_TRUE on success, EINA_FALSE otherwise
Note
This requires support from the video driver in order to function
Since
1.23

References EINA_FALSE, and EINA_SAFETY_ON_NULL_RETURN_VAL.