Previously renderers were not told when the output (framebuffer they
need to draw) size changed. Renderers just pulled that information out
weston_output::current_mode when they happened to need it. This
makes some things awkward, like resizing the shadow or intermediate
buffers. In fact, Pixman-renderer does not even support resizing its
shadow buffer, nor does GL-renderer. DRM-backend has to destroy and
re-create the renderer output state anyway, but rdp, x11 and wayland
backends would be natural users of resizing API.
This MR adds the renderer render-target resizing API, making renderers explicitly aware of when the target size changes.
Since GL-renderer is needed to blit output decorations (used by wayland-backend alone, when an output window is floating), it is not enough to communicate only the framebuffer size but also the position and size of the composited area (excluding decorations).
Communicating both the fb size and area explicitly allows renderers to track these, which will be useful with a future screenshooting protocol designed for the Weston test suite. This will also allow to stop renderers from looking into
weston_output::current_mode which is done in a follow-up MR for GL-renderer (!977 (merged)), and here already for pixman-renderer.
Finally x11-backend uses the new resizing API to avoid destroying and re-creating the renderer output state, and with GL-renderer it means it does not need to destroy and re-create the EGLSurface. RDP-backend is switched to the new API as well.