gl renderer: Fix rounded rect intersection code

Test case attached.

Fixes #1920
This commit is contained in:
Timm Bäder 2019-06-02 08:31:44 +02:00
parent aa267c1c84
commit f1996783ec
4 changed files with 53 additions and 2 deletions

View File

@ -1072,13 +1072,14 @@ gsk_rounded_rect_intersection (const GskRoundedRect *outer,
gboolean contained_x;
gboolean contained_y;
if (graphene_rect_contains_rect (outer_bounds, inner_bounds))
get_inner_rect (outer, &outer_inner);
if (graphene_rect_contains_rect (&outer_inner, inner_bounds))
{
*out_intersection = *inner;
return TRUE;
}
get_inner_rect (outer, &outer_inner);
get_inner_rect (inner, &inner_inner);
contained_x = outer_inner.origin.x <= inner_inner.origin.x &&

View File

@ -0,0 +1,48 @@
transform {
transform: scale(8);
child:container {
rounded-clip {
clip: 0 0 50 50 / 30 0 0 0;
child: rounded-clip {
clip: 0 0 100 100 / 0;
child: color {
bounds: 0 0 50 50;
color: teal;
}
}
}
debug {
message: "Clipped-out area";
child: container {
color {
color: black;
bounds: 0 16 5 14;
}
color {
color: black;
bounds: 3 12 5 5;
}
color {
color: black;
bounds: 6 7 5 5;
}
color {
color: black;
bounds: 10 3 5 5;
}
color {
color: black;
bounds: 15 0 5 5;
}
color {
color: black;
bounds: 19 0 14 2;
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -54,6 +54,8 @@ compare_render_tests = [
'scaled-cairo',
'shadow-in-opacity',
'texture-url',
'color-matrix-identity',
'clip-nested1',
]
renderers = [