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.
EAPI int | ecore_drm2_shutdown (void)
| Shutdown the Ecore_Drm2 library.
EAPI int | ecore_drm2_event_handle (Ecore_Drm2_Device *dev, Ecore_Drm2_Context *drmctx)
| Read and process pending Drm events.
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.
EAPI void | ecore_drm2_device_close (Ecore_Drm2_Device *device)
| Close an open Ecore_Drm2_Device.
EAPI int | ecore_drm2_device_clock_id_get (Ecore_Drm2_Device *device)
| Get the type of clock used by a given Ecore_Drm2_Device.
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.
EAPI void | ecore_drm2_device_pointer_xy_get (Ecore_Drm2_Device *device, int *x, int *y)
| Get the current pointer position.
EAPI void | ecore_drm2_device_pointer_warp (Ecore_Drm2_Device *device, int x, int y)
| Warp the pointer position to given coordinates.
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.
EAPI void | ecore_drm2_device_window_set (Ecore_Drm2_Device *device, unsigned int window)
| Set which window is to be used for input events.
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.
EAPI void | ecore_drm2_device_pointer_accel_speed_set (Ecore_Drm2_Device *device, double speed)
| Set pointer acceleration speed.
EAPI void | ecore_drm2_device_pointer_accel_profile_set (Ecore_Drm2_Device *device, uint32_t profile)
| Set pointer acceleration profile.
EAPI Eina_Bool | ecore_drm2_device_pointer_rotation_set (Ecore_Drm2_Device *device, int rotation)
| Set pointer value rotation.
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.
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.
EAPI void | ecore_drm2_device_keyboard_group_set (Ecore_Drm2_Device *device, int group)
| Set a group layout to be used on keyboards.
EAPI unsigned int * | ecore_drm2_device_crtcs_get (Ecore_Drm2_Device *device, int *num)
| Get the crtcs of a given device.
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.
EAPI void | ecore_drm2_device_calibrate (Ecore_Drm2_Device *device, int w, int h)
| Calibrate any input devices for given screen size.
EAPI Eina_Bool | ecore_drm2_device_vt_set (Ecore_Drm2_Device *device, int vt)
| Try to switch to a given virtual terminal.
EAPI Eina_Bool | ecore_drm2_device_prefer_shadow (Ecore_Drm2_Device *device)
| Get if a given device prefers the use of shadow buffers.
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.
EAPI Eina_Bool | ecore_drm2_outputs_create (Ecore_Drm2_Device *device)
| Iterate drm resources and create outputs.
EAPI void | ecore_drm2_outputs_destroy (Ecore_Drm2_Device *device)
| Destroy any created outputs.
EAPI const Eina_List * | ecore_drm2_outputs_get (Ecore_Drm2_Device *device)
| Get the list of outputs from a drm device.
EAPI int | ecore_drm2_output_dpms_get (Ecore_Drm2_Output *output)
| Get the dpms level of a given output.
EAPI void | ecore_drm2_output_dpms_set (Ecore_Drm2_Output *output, int level)
| Set the dpms level of a given output.
EAPI char * | ecore_drm2_output_edid_get (Ecore_Drm2_Output *output)
| Get the edid of a given output.
EAPI Eina_Bool | ecore_drm2_output_backlight_get (Ecore_Drm2_Output *output)
| Get if a given output has a backlight.
EAPI Ecore_Drm2_Output * | ecore_drm2_output_find (Ecore_Drm2_Device *device, int x, int y)
| Find an output at the given position.
EAPI void | ecore_drm2_output_dpi_get (Ecore_Drm2_Output *output, int *xdpi, int *ydpi)
| Get the dpi of a given output.
EAPI unsigned int | ecore_drm2_output_crtc_get (Ecore_Drm2_Output *output)
| Get the id of the crtc that an output is using.
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.
EAPI Eina_Bool | ecore_drm2_output_primary_get (Ecore_Drm2_Output *output)
| Get if a given output is marked as the primary output.
EAPI void | ecore_drm2_output_primary_set (Ecore_Drm2_Output *output, Eina_Bool primary)
| Set a given output to be primary.
EAPI Eina_Bool | ecore_drm2_output_enabled_get (Ecore_Drm2_Output *output)
| Get if a given output is enabled.
EAPI void | ecore_drm2_output_enabled_set (Ecore_Drm2_Output *output, Eina_Bool enabled)
| Set if a given output is enabled.
EAPI void | ecore_drm2_output_physical_size_get (Ecore_Drm2_Output *output, int *w, int *h)
| Get the physical size of a given output.
EAPI const Eina_List * | ecore_drm2_output_modes_get (Ecore_Drm2_Output *output)
| Get a list of the modes supported on a given output.
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.
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.
EAPI char * | ecore_drm2_output_name_get (Ecore_Drm2_Output *output)
| Get the name of a given output.
EAPI char * | ecore_drm2_output_model_get (Ecore_Drm2_Output *output)
| Get the model of a given output.
EAPI Eina_Bool | ecore_drm2_output_connected_get (Ecore_Drm2_Output *output)
| Get if a given output is connected.
EAPI Eina_Bool | ecore_drm2_output_cloned_get (Ecore_Drm2_Output *output)
| Get if a given output is cloned.
EAPI unsigned int | ecore_drm2_output_connector_type_get (Ecore_Drm2_Output *output)
| Get the connector type of a given output.
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.
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.
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.
EAPI int | ecore_drm2_output_supported_rotations_get (Ecore_Drm2_Output *output)
| Get the supported rotations of a given output.
EAPI Eina_Bool | ecore_drm2_output_rotation_set (Ecore_Drm2_Output *output, int rotation)
| Set a rotation on a given output.
EAPI int | ecore_drm2_output_rotation_get (Ecore_Drm2_Output *output)
| Get current output rotation.
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.
EAPI void * | ecore_drm2_output_user_data_get (Ecore_Drm2_Output *output)
| Get the user data for a given output.
EAPI unsigned int | ecore_drm2_output_subpixel_get (const Ecore_Drm2_Output *output)
| Get the subpixel state of the output.
EAPI void | ecore_drm2_output_relative_mode_set (Ecore_Drm2_Output *output, Ecore_Drm2_Relative_Mode mode)
| Set the relative mode for an output.
EAPI Ecore_Drm2_Relative_Mode | ecore_drm2_output_relative_mode_get (Ecore_Drm2_Output *output)
| Get the relative mode of an output.
EAPI void | ecore_drm2_output_relative_to_set (Ecore_Drm2_Output *output, const char *relative)
| Set which output a given output is relative to.
EAPI const char * | ecore_drm2_output_relative_to_get (Ecore_Drm2_Output *output)
| Get which output is relative to a given output.
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.
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.
EAPI unsigned int | ecore_drm2_fb_size_get (Ecore_Drm2_Fb *fb)
| Get a framebuffer's size.
EAPI unsigned int | ecore_drm2_fb_stride_get (Ecore_Drm2_Fb *fb)
| Get a framebuffer's stride.
EAPI void | ecore_drm2_fb_dirty (Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned int count)
| Mark regions of a framebuffer as dirty.
EAPI int | ecore_drm2_fb_flip (Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output)
| Schedule a pageflip to the given Ecore_Drm2_Fb.
EAPI Eina_Bool | ecore_drm2_fb_flip_complete (Ecore_Drm2_Output *output)
| Must be called by a page flip handler when the flip completes.
EAPI Eina_Bool | ecore_drm2_fb_busy_get (Ecore_Drm2_Fb *fb)
| Return the Ecore_Drm2_Fb's busy status.
EAPI Eina_Bool | ecore_drm2_fb_release (Ecore_Drm2_Output *o, Eina_Bool panic)
| Try to force a framebuffer release for an output.
EAPI void * | ecore_drm2_fb_bo_get (Ecore_Drm2_Fb *fb)
| Get the Framebuffer's gbm buffer object.
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.
EAPI void | ecore_drm2_fb_discard (Ecore_Drm2_Fb *fb)
| Discard a framebuffer object.
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.
EAPI void | ecore_drm2_plane_release (Ecore_Drm2_Plane *plane)
| Remove a hardware plane from display.
EAPI void | ecore_drm2_plane_destination_set (Ecore_Drm2_Plane *plane, int x, int y, int w, int h)
| Set plane destination values.
EAPI Eina_Bool | ecore_drm2_plane_fb_set (Ecore_Drm2_Plane *plane, Ecore_Drm2_Fb *fb)
| Set plane frame buffer.
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.
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.
EAPI int | ecore_drm2_device_fd_get (Ecore_Drm2_Device *device)
| Get the fd of an Ecore_Drm2_Device.
EAPI Eina_Bool | ecore_drm2_output_pending_get (Ecore_Drm2_Output *output)
| Check if there's a pageflip in progress for an output.
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.
EAPI Eina_Bool | ecore_drm2_vblank_supported (Ecore_Drm2_Device *dev)
| Check if vblank is supported by the current video driver.

## 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 ecore_drm2_output_background_color_set(), EINA_FALSE, and EINA_SAFETY_ON_NULL_RETURN_VAL.

Referenced by ecore_drm2_output_background_color_set().