mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-01 22:58:38 -04:00
backend/{x11,headless}: fix refresh rate
This commit is contained in:
parent
8f8470aed9
commit
2d6bbf12f8
4 changed files with 24 additions and 6 deletions
|
|
@ -23,14 +23,25 @@ static void parse_xcb_setup(struct wlr_output *output, xcb_connection_t *xcb_con
|
|||
xcb_setup->protocol_minor_version);
|
||||
}
|
||||
|
||||
static bool output_set_custom_mode(struct wlr_output *wlr_output, int32_t width,
|
||||
int32_t height, int32_t refresh) {
|
||||
static void output_set_refresh(struct wlr_output *wlr_output, int32_t refresh) {
|
||||
struct wlr_x11_output *output = (struct wlr_x11_output *)wlr_output;
|
||||
struct wlr_x11_backend *x11 = output->x11;
|
||||
|
||||
if (refresh == 0) {
|
||||
refresh = X11_DEFAULT_REFRESH;
|
||||
}
|
||||
|
||||
wlr_output_update_custom_mode(&output->wlr_output, wlr_output->width,
|
||||
wlr_output->height, refresh);
|
||||
|
||||
output->frame_delay = 1000000 / refresh;
|
||||
}
|
||||
|
||||
static bool output_set_custom_mode(struct wlr_output *wlr_output,
|
||||
int32_t width, int32_t height, int32_t refresh) {
|
||||
struct wlr_x11_output *output = (struct wlr_x11_output *)wlr_output;
|
||||
struct wlr_x11_backend *x11 = output->x11;
|
||||
|
||||
output_set_refresh(&output->wlr_output, refresh);
|
||||
|
||||
const uint32_t values[] = { width, height };
|
||||
xcb_configure_window(x11->xcb_conn, output->win,
|
||||
|
|
@ -97,8 +108,7 @@ struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend) {
|
|||
struct wlr_output *wlr_output = &output->wlr_output;
|
||||
wlr_output_init(wlr_output, &x11->backend, &output_impl, x11->wl_display);
|
||||
|
||||
wlr_output->refresh = 60 * 1000000;
|
||||
output->frame_delay = 16; // 60 Hz
|
||||
output_set_refresh(&output->wlr_output, 0);
|
||||
|
||||
snprintf(wlr_output->name, sizeof(wlr_output->name), "X11-%d",
|
||||
wl_list_length(&x11->outputs) + 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue