Split texture rendering out of wlr_render_pass and introduce a
dedicated wlr_render_texture_pass interface.
Remove the add_texture hook from wlr_render_pass_impl and route
texture rendering through renderer->texture_pass instead.
Split rectangle rendering out of wlr_render_pass and add a dedicated
wlr_render_rect_pass interface.
Remove the add_rect hook from wlr_render_pass_impl and implement
rectangle rendering separately in the pixman, GLES2 and Vulkan
renderers.
Goals:
- Extensibility: we need to be able to add new params to the calls
to render a texture/rect. For instance we'll need to add fences to
the render texture operation for explicit sync purposes.
- No implicit state: no more bind_buffer, begin, end.
- No matrices: these hurt Pixman and we don't need them.
- Clip regions for optimized damage repainting.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3188