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 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
}
 

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 (int fd, Ecore_Drm2_Context *drmctx)
 Read and process pending Drm events. More...
 
EAPI Ecore_Drm2_Device * ecore_drm2_device_find (const char *seat, unsigned int tty)
 Try to find a drm device on a given seat. More...
 
EAPI int ecore_drm2_device_open (Ecore_Drm2_Device *device)
 Try to open a given Ecore_Drm2_Device. More...
 
EAPI void ecore_drm2_device_close (Ecore_Drm2_Device *device)
 Close an open Ecore_Drm2_Device. More...
 
EAPI void ecore_drm2_device_free (Ecore_Drm2_Device *device)
 Free a given 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 Eina_Bool ecore_drm2_device_pointer_rotation_set (Ecore_Drm2_Device *device, int rotation)
 Set pointer value rotation. 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 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_geometry_get (Ecore_Drm2_Output *output, int *x, int *y, int *w, int *h)
 Get the geometry of a given output. 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 void ecore_drm2_output_crtc_size_get (Ecore_Drm2_Output *output, int *w, int *h)
 Get the size of the crtc 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_resolution_get (Ecore_Drm2_Output *output, int *w, int *h, unsigned int *refresh)
 Get the current resolution of 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 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 unsigned int ecore_drm2_output_subpixel_get (const Ecore_Drm2_Output *output)
 Get the subpixel state of the output. More...
 
EAPI Ecore_Drm2_Fb * ecore_drm2_fb_create (int fd, 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 (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_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 (int fd, 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...
 

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_blanktime_get()

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.

Query the display hardware for the time of a vblank, potentially blocking.

If sequence is 0 the time of the last vblank will be immediately returned, if it's above zero that number of vblanks will pass before the function returns.

Parameters
output
sequence
sec
usec
Since
1.20