mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
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
This commit is contained in:
parent
56ceed38bf
commit
23e37e7b1d
12 changed files with 115 additions and 74 deletions
|
|
@ -94,14 +94,14 @@ void output_frame_notify(struct wl_listener *listener, void *data) {
|
|||
struct sample_state *sample = output->sample;
|
||||
struct wlr_output *wlr_output = output->output;
|
||||
|
||||
wlr_output_make_current(wlr_output, NULL);
|
||||
wlr_output_attach_render(wlr_output, NULL);
|
||||
|
||||
glClearColor(sample->clear_color[0], sample->clear_color[1],
|
||||
sample->clear_color[2], sample->clear_color[3]);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
wlr_output_render_software_cursors(wlr_output, NULL);
|
||||
wlr_output_swap_buffers(wlr_output, NULL, NULL);
|
||||
wlr_output_commit(wlr_output);
|
||||
}
|
||||
|
||||
static void handle_cursor_motion(struct wl_listener *listener, void *data) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue