diff options
Diffstat (limited to 'backend/x11')
-rw-r--r-- | backend/x11/backend.c | 2 | ||||
-rw-r--r-- | backend/x11/output.c | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/backend/x11/backend.c b/backend/x11/backend.c index 38715631..ddd8ab77 100644 --- a/backend/x11/backend.c +++ b/backend/x11/backend.c @@ -46,7 +46,7 @@ static void handle_x11_event(struct wlr_x11_backend *x11, struct wlr_x11_output *output = get_x11_output_from_window_id(x11, ev->window); if (output != NULL) { - wlr_output_update_needs_swap(&output->wlr_output); + wlr_output_update_needs_commit(&output->wlr_output); } break; } diff --git a/backend/x11/output.c b/backend/x11/output.c index a9bd5c0a..8ee15d51 100644 --- a/backend/x11/output.c +++ b/backend/x11/output.c @@ -95,7 +95,7 @@ static void output_destroy(struct wlr_output *wlr_output) { free(output); } -static bool output_make_current(struct wlr_output *wlr_output, +static bool output_attach_render(struct wlr_output *wlr_output, int *buffer_age) { struct wlr_x11_output *output = get_x11_output_from_output(wlr_output); struct wlr_x11_backend *x11 = output->x11; @@ -103,11 +103,15 @@ static bool output_make_current(struct wlr_output *wlr_output, return wlr_egl_make_current(&x11->egl, output->surf, buffer_age); } -static bool output_swap_buffers(struct wlr_output *wlr_output, - pixman_region32_t *damage) { - struct wlr_x11_output *output = (struct wlr_x11_output *)wlr_output; +static bool output_commit(struct wlr_output *wlr_output) { + struct wlr_x11_output *output = get_x11_output_from_output(wlr_output); struct wlr_x11_backend *x11 = output->x11; + pixman_region32_t *damage = NULL; + if (wlr_output->pending.committed & WLR_OUTPUT_STATE_DAMAGE) { + damage = &wlr_output->pending.damage; + } + if (!wlr_egl_swap_buffers(&x11->egl, output->surf, damage)) { return false; } @@ -120,8 +124,8 @@ static const struct wlr_output_impl output_impl = { .set_custom_mode = output_set_custom_mode, .transform = output_transform, .destroy = output_destroy, - .make_current = output_make_current, - .swap_buffers = output_swap_buffers, + .attach_render = output_attach_render, + .commit = output_commit, }; struct wlr_output *wlr_x11_output_create(struct wlr_backend *backend) { |