wlroots/types/scene
David Turner 792bee9657 scene: Optimize rendering of single-pixel buffers
The single-pixel buffer protocol is used to allow wayland clients to
easily draw solid-color rectangles by presenting a 1x1-pixel buffer and
scaling it to the desired size.  This patch improves how these buffers
are then handled in the scene-tree renderer.

We already ignore opaque black rectangles at the very bottom (and
anything under them) because we assume we'll be rendering on a black
background.  This patch detects black opaque single-pixel buffers and
handles them in the same way as black opaque rectangles.  It also
renders single-pixel buffers as rectangles rather than buffers because
this is probably more efficient in the underlying renderer.

In wlr_scene_surface we cache whether the attached buffer is a
single-pixel buffer.  This is done because the
wlr_single_pixel_buffer_v1 will be destroyed after texture upload, after
which it becomes much more annoying to check if the buffer is a
single-pixel buffer.
2025-04-07 13:28:51 +01:00
..
drag_icon.c wlr_scene: Don't disable scene nodes at creation time 2024-07-04 14:35:52 -04:00
layer_shell_v1.c wlr_scene: Don't disable scene nodes at creation time 2024-07-04 14:35:52 -04:00
output_layout.c scene: ignore duplicate wlr_scene_output_layout_add_output() calls 2024-02-20 11:04:46 +01:00
subsurface_tree.c scene: constify subsurface_tree_set_clip() 2024-03-20 12:56:28 +01:00
surface.c scene: Optimize rendering of single-pixel buffers 2025-04-07 13:28:51 +01:00
wlr_scene.c scene: Optimize rendering of single-pixel buffers 2025-04-07 13:28:51 +01:00
xdg_shell.c xdg-surface: fix window geometry handling 2024-08-14 18:52:13 +00:00