EAPI void ecore_drm2_device_pointer_warp(Ecore_Drm2_Device *device, int x, int y);
/**
+ * Set which window is to be used for input events
+ *
+ * @param device
+ * @param window
+ *
+ * @ingroup Ecore_Drm2_Device_Group
+ * @since 1.18
+ */
+EAPI void ecore_drm2_device_window_set(Ecore_Drm2_Device *device, unsigned int window);
+
+/**
+ * Set maximium position that pointer device is allowed to move
+ *
+ * @param device
+ * @param w
+ * @param h
+ *
+ * @ingroup Ecore_Drm2_Device_Group
+ * @since 1.18
+ */
+EAPI void ecore_drm2_device_pointer_max_set(Ecore_Drm2_Device *device, int w, int h);
+
+/**
* @defgroup Ecore_Drm2_Output_Group Drm output functions
*
* Functions that deal with setup of outputs
EAPI void ecore_drm2_output_next_fb_set(Ecore_Drm2_Output *output, Ecore_Drm2_Fb *fb);
/**
+ * Get the size of the crtc for a given output
+ *
+ * @param output
+ * @param *w
+ * @param *h
+ *
+ * @ingroup Ecore_Drm2_Output_Group
+ * @since 1.18
+ */
+EAPI void ecore_drm2_output_crtc_size_get(Ecore_Drm2_Output *output, int *w, int *h);
+
+/**
* @defgroup Ecore_Drm2_Fb_Group Drm framebuffer functions
*
* Functions that deal with setup of framebuffers
elput_input_pointer_xy_set(device->em, NULL, x, y);
}
+
+EAPI void
+ecore_drm2_device_window_set(Ecore_Drm2_Device *device, unsigned int window)
+{
+ const Eina_List *seats, *l;
+ const Eina_List *devs, *ll;
+ Elput_Seat *seat;
+ Elput_Device *dev;
+
+ EINA_SAFETY_ON_NULL_RETURN(device);
+ EINA_SAFETY_ON_NULL_RETURN(device->em);
+
+ seats = elput_manager_seats_get(device->em);
+ if (!seats) return;
+
+ EINA_LIST_FOREACH(seats, l, seat)
+ {
+ devs = elput_input_devices_get(seat);
+ if (!devs) continue;
+
+ EINA_LIST_FOREACH(devs, ll, dev)
+ elput_device_window_set(dev, window);
+ }
+}
+
+EAPI void
+ecore_drm2_device_pointer_max_set(Ecore_Drm2_Device *device, int w, int h)
+{
+ EINA_SAFETY_ON_NULL_RETURN(device);
+ EINA_SAFETY_ON_NULL_RETURN(device->em);
+
+ elput_input_pointer_max_set(device->em, w, h);
+}
EINA_SAFETY_ON_NULL_RETURN(output);
output->next = fb;
}
+
+EAPI void
+ecore_drm2_output_crtc_size_get(Ecore_Drm2_Output *output, int *w, int *h)
+{
+ drmModeCrtcPtr crtc;
+
+ if (w) *w = 0;
+ if (h) *h = 0;
+
+ EINA_SAFETY_ON_NULL_RETURN(output);
+
+ crtc = drmModeGetCrtc(output->fd, output->crtc_id);
+ if (!crtc) return;
+
+ if (w) *w = crtc->width;
+ if (h) *h = crtc->height;
+
+ drmModeFreeCrtc(crtc);
+}