render: introduce wlr_render_rect_pass

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.
This commit is contained in:
YaoBing Xiao 2026-03-13 10:49:41 +08:00
parent fd870f6d27
commit 33a27b055c
13 changed files with 258 additions and 9 deletions

View file

@ -592,4 +592,12 @@ void vulkan_change_layout(VkCommandBuffer cb, VkImage img,
#endif
struct wlr_vk_render_rect_pass {
struct wlr_render_rect_pass base;
};
bool wlr_render_rect_pass_is_vk(const struct wlr_render_rect_pass *rect_pass);
struct wlr_vk_render_rect_pass *wlr_vk_render_rect_pass_from_pass(
struct wlr_render_rect_pass *rect_pass);
#endif // RENDER_VULKAN_H