Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
Exclude rect nodes with active fade_inset from opaque region and black opaque optimization checks
scenefx/types/scene/wlr_scene.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scenefx/types/scene/wlr_scene.c b/scenefx/types/scene/wlr_scene.c
index 5b9eabf..ef17f4a 100644
--- a/scenefx/types/scene/wlr_scene.c
+++ b/scenefx/types/scene/wlr_scene.c
@@ -334,7 +334,7 @@ static void scene_node_opaque_region(struct wlr_scene_node *node, int x, int y,
if (node->type == WLR_SCENE_NODE_RECT) {
struct wlr_scene_rect *scene_rect = wlr_scene_rect_from_node(node);
- if (scene_rect->color[3] != 1) {
+ if (scene_rect->color[3] != 1 || scene_rect->fade_inset > 0) {
return;
}
@@ -2681,6 +2681,7 @@ static bool scene_rect_is_black_opaque(struct wlr_scene_rect *scene_rect) {
scene_rect->color[1] == 0.f &&
scene_rect->color[2] == 0.f &&
scene_rect->color[3] == 1.f &&
+ scene_rect->fade_inset == 0 &&
fx_corner_radii_is_empty(&scene_rect->corners) &&
fx_corner_radii_is_empty(&scene_rect->clipped_region.corners) &&
wlr_box_empty(&scene_rect->clipped_region.area);