output: introduce wlr_output_configure_primary_swapchain()

The goal is to simplify wlr_output by moving all of its rendering
API into separate helpers. Here is a first step to sunset
wlr_output_attach_render(). Instead, compositors call
wlr_output_configure_primary_swapchain(), wlr_swapchain_acquire(),
wlr_renderer_begin_with_buffer() and wlr_output_attach_buffer().

Note that compositors can supply a base struct wlr_output_state.
This is useful to allocate a buffer suitable for submission with
a modeset, for instance.

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3079
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3197
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3984
This commit is contained in:
Simon Ser 2023-02-21 18:12:05 +01:00 committed by Isaac Freund
parent 59acc69737
commit fef8ab22e3
3 changed files with 124 additions and 0 deletions

View file

@ -7,6 +7,7 @@ wlr_files += files(
'output/output.c',
'output/render.c',
'output/state.c',
'output/swapchain.c',
'output/transform.c',
'scene/drag_icon.c',
'scene/subsurface_tree.c',