ngl: Avoid offscreens in more cases

We avoid an offscreen if we know the child node
can 'handle' the transform. Shadow nodes can if their
child node does - either the child node is a text node
in which case the shortcuts we take for shadow nodes
will work fine with the transform (we just render the
text node offset), or the child is not a text node,
in which case we render the shadow to an offscreen
anyway.

This change makes the label-shadows reftest pass with
the GL renderer, not by fixing the issue but by avoiding
it.
This commit is contained in:
Matthias Clasen 2021-09-16 08:05:21 -04:00 committed by Benjamin Otte
parent 9e14de2534
commit 93323be22a

View File

@ -252,6 +252,9 @@ node_supports_transform (const GskRenderNode *node)
case GSK_TEXT_NODE: case GSK_TEXT_NODE:
return TRUE; return TRUE;
case GSK_SHADOW_NODE:
return node_supports_transform (gsk_shadow_node_get_child (node));
case GSK_TRANSFORM_NODE: case GSK_TRANSFORM_NODE:
return node_supports_transform (gsk_transform_node_get_child (node)); return node_supports_transform (gsk_transform_node_get_child (node));