output: introduce wlr_output_preferred_mode
This commit is contained in:
parent
95b22619e0
commit
8acbf449cc
|
@ -157,6 +157,11 @@ struct wlr_surface;
|
|||
bool wlr_output_enable(struct wlr_output *output, bool enable);
|
||||
void wlr_output_create_global(struct wlr_output *output);
|
||||
void wlr_output_destroy_global(struct wlr_output *output);
|
||||
/**
|
||||
* Returns the preferred mode for this output. If the output doesn't support
|
||||
* modes, returns NULL.
|
||||
*/
|
||||
struct wlr_output_mode *wlr_output_preferred_mode(struct wlr_output *output);
|
||||
/**
|
||||
* Sets the output mode. Enables the output if it's currently disabled.
|
||||
*/
|
||||
|
|
|
@ -344,6 +344,22 @@ void wlr_output_effective_resolution(struct wlr_output *output,
|
|||
*height /= output->scale;
|
||||
}
|
||||
|
||||
struct wlr_output_mode *wlr_output_preferred_mode(struct wlr_output *output) {
|
||||
if (wl_list_empty(&output->modes)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct wlr_output_mode *mode;
|
||||
wl_list_for_each(mode, &output->modes, link) {
|
||||
if (mode->preferred) {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
|
||||
// No preferred mode, choose the last one
|
||||
return mode;
|
||||
}
|
||||
|
||||
bool wlr_output_make_current(struct wlr_output *output, int *buffer_age) {
|
||||
return output->impl->make_current(output, buffer_age);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue