aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2019-03-21 21:12:43 +0100
committeremersion <contact@emersion.fr>2019-03-21 22:12:43 +0200
commitcd60f40bbb973c8e68bad547190640aa16f0d5b9 (patch)
tree20aab1cfbdec0f37b1d567cb89eb787ae2b56ea2
parent4453757fc9fa357288423ef3b54af3a1d7f35366 (diff)
wlr_output: Add preferred property (#1625)
* wlr_output: Indicate modes link * wlr_output: Introduce preferred flag This indicates an outputs preferred mode. * drm: Set preferred flag for an outputs preferred mode
-rw-r--r--backend/drm/drm.c3
-rw-r--r--include/wlr/types/wlr_output.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 7fd36794..f179f835 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -1207,6 +1207,9 @@ void scan_drm_connectors(struct wlr_drm_backend *drm) {
mode->wlr_mode.width = mode->drm_mode.hdisplay;
mode->wlr_mode.height = mode->drm_mode.vdisplay;
mode->wlr_mode.refresh = calculate_refresh_rate(&mode->drm_mode);
+ if (mode->drm_mode.type & DRM_MODE_TYPE_PREFERRED) {
+ mode->wlr_mode.preferred = true;
+ }
wlr_log(WLR_INFO, " %"PRId32"x%"PRId32"@%"PRId32,
mode->wlr_mode.width, mode->wlr_mode.height,
diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h
index d6761ee1..84791b2d 100644
--- a/include/wlr/types/wlr_output.h
+++ b/include/wlr/types/wlr_output.h
@@ -20,6 +20,7 @@ struct wlr_output_mode {
uint32_t flags; // enum wl_output_mode
int32_t width, height;
int32_t refresh; // mHz
+ bool preferred;
struct wl_list link;
};
@@ -71,7 +72,7 @@ struct wlr_output {
int32_t phys_width, phys_height; // mm
// Note: some backends may have zero modes
- struct wl_list modes;
+ struct wl_list modes; // wlr_output_mode::link
struct wlr_output_mode *current_mode;
int32_t width, height;
int32_t refresh; // mHz, may be zero