Use output layers for cursor and primary buffer
Right now the cursor and primary buffer need to be submitted separately. This prevents some features like scaling, cropping, transforms, etc from being used for these buffers. Instead, unify these with output layers.
It's somewhat tricky to come up with a plan to incrementally achieve this without one big flag-day change. Here's my take:
- If the user provides output layers at all, require cursor/primary to be provided by the user as output layers.
- If the user doesn't provide output layers, make
wlr_output
generate output layers for the primary and cursor buffer. - Migrate backends one by one to extract the cursor and primary buffers from output layers.
- Remove old codepaths from the
wlr_output
backend API. - (Remove old user-facing
wlr_output
APIs.)