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);
|
bool wlr_output_enable(struct wlr_output *output, bool enable);
|
||||||
void wlr_output_create_global(struct wlr_output *output);
|
void wlr_output_create_global(struct wlr_output *output);
|
||||||
void wlr_output_destroy_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.
|
* 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;
|
*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) {
|
bool wlr_output_make_current(struct wlr_output *output, int *buffer_age) {
|
||||||
return output->impl->make_current(output, buffer_age);
|
return output->impl->make_current(output, buffer_age);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue