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
This commit is contained in:
Guido Günther 2019-03-21 21:12:43 +01:00 committed by emersion
parent 4453757fc9
commit cd60f40bbb
2 changed files with 5 additions and 1 deletions

View file

@ -1207,6 +1207,9 @@ void scan_drm_connectors(struct wlr_drm_backend *drm) {
mode->wlr_mode.width = mode->drm_mode.hdisplay; mode->wlr_mode.width = mode->drm_mode.hdisplay;
mode->wlr_mode.height = mode->drm_mode.vdisplay; mode->wlr_mode.height = mode->drm_mode.vdisplay;
mode->wlr_mode.refresh = calculate_refresh_rate(&mode->drm_mode); 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, wlr_log(WLR_INFO, " %"PRId32"x%"PRId32"@%"PRId32,
mode->wlr_mode.width, mode->wlr_mode.height, mode->wlr_mode.width, mode->wlr_mode.height,

View file

@ -20,6 +20,7 @@ struct wlr_output_mode {
uint32_t flags; // enum wl_output_mode uint32_t flags; // enum wl_output_mode
int32_t width, height; int32_t width, height;
int32_t refresh; // mHz int32_t refresh; // mHz
bool preferred;
struct wl_list link; struct wl_list link;
}; };
@ -71,7 +72,7 @@ struct wlr_output {
int32_t phys_width, phys_height; // mm int32_t phys_width, phys_height; // mm
// Note: some backends may have zero modes // 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; struct wlr_output_mode *current_mode;
int32_t width, height; int32_t width, height;
int32_t refresh; // mHz, may be zero int32_t refresh; // mHz, may be zero