From 2e12de96ca988f9b8ee51789e70542c24bab8844 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Sun, 19 Sep 2021 16:36:23 +0200 Subject: backend/drm: add support for panel orientation Expose the panel orientation with wlr_drm_connector_get_panel_orientation. Leave it to the compositor to consume this information and configure the output accordingly. Closes: https://github.com/swaywm/wlroots/issues/1581 --- include/backend/drm/properties.h | 1 + include/wlr/backend/drm.h | 11 +++++++++++ 2 files changed, 12 insertions(+) (limited to 'include') diff --git a/include/backend/drm/properties.h b/include/backend/drm/properties.h index 99d5a92e..10c1ccd0 100644 --- a/include/backend/drm/properties.h +++ b/include/backend/drm/properties.h @@ -19,6 +19,7 @@ union wlr_drm_connector_props { uint32_t vrr_capable; // not guaranteed to exist uint32_t subconnector; // not guaranteed to exist uint32_t non_desktop; + uint32_t panel_orientation; // not guaranteed to exist // atomic-modesetting only diff --git a/include/wlr/backend/drm.h b/include/wlr/backend/drm.h index 0d8c51e0..0e9f6108 100644 --- a/include/wlr/backend/drm.h +++ b/include/wlr/backend/drm.h @@ -61,4 +61,15 @@ typedef struct _drmModeModeInfo drmModeModeInfo; struct wlr_output_mode *wlr_drm_connector_add_mode(struct wlr_output *output, const drmModeModeInfo *mode); +/** + * Get the connector's panel orientation. + * + * On some devices the panel is mounted in the casing in such a way that the + * top side of the panel does not match with the top side of the device. This + * function returns the output transform which needs to be applied to compensate + * for this. + */ +enum wl_output_transform wlr_drm_connector_get_panel_orientation( + struct wlr_output *output); + #endif -- cgit v1.2.3