diff options
author | Simon Ser <[email protected]> | 2019-04-22 12:42:37 +0300 |
---|---|---|
committer | Drew DeVault <[email protected]> | 2019-04-23 14:34:30 -0600 |
commit | 132df104fbfa9e32b955ecfaeba46f0a781c26ed (patch) | |
tree | 3994503fbf398057a4a7e962adfe31b8a5bac4fe /tinywl.c | |
parent | 417c67302d2539b397ae568e950651f14ab18d44 (diff) |
output: refactor frame submission API
This is necessary for direct scan-out and other upcoming features. This patch
changes the output API to look like the wl_surface API.
Outputs now have some double-buffered state: the frame to be submitted
(currently only wlr_renderer frames are supported) and the damaged region.
To attach a pending frame, use wlr_output_attach_render. To set the pending
damaged region, use wlr_output_set_damage.
To submit the pending state, call wlr_output_commit. This will submit the
pending frame to the backend.
To migrate from the old API to the new one:
- Replace wlr_output_make_current calls by wlr_output_attach_render
- Replace wlr_output_swap_buffers calls by wlr_output_set_damage and
wlr_output_commit
Diffstat (limited to 'tinywl.c')
-rw-r--r-- | tinywl.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -591,8 +591,8 @@ static void output_frame(struct wl_listener *listener, void *data) { struct timespec now; clock_gettime(CLOCK_MONOTONIC, &now); - /* wlr_output_make_current makes the OpenGL context current. */ - if (!wlr_output_make_current(output->wlr_output, NULL)) { + /* wlr_output_attach_render makes the OpenGL context current. */ + if (!wlr_output_attach_render(output->wlr_output, NULL)) { return; } /* The "effective" resolution can change if you rotate your outputs. */ @@ -635,7 +635,7 @@ static void output_frame(struct wl_listener *listener, void *data) { /* Conclude rendering and swap the buffers, showing the final frame * on-screen. */ wlr_renderer_end(renderer); - wlr_output_swap_buffers(output->wlr_output, NULL, NULL); + wlr_output_commit(output->wlr_output); } static void server_new_output(struct wl_listener *listener, void *data) { |