diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-09-16 08:05:21 -0400 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2021-09-16 23:59:37 +0200 |
commit | 93323be22a5727ceaea67938e88acf31066f7ee0 (patch) | |
tree | e47ae0ad8199f586bd86171a7798793661089b50 /gsk | |
parent | 9e14de25345039318bdd0a1f980139381bfae188 (diff) | |
download | gtk+-93323be22a5727ceaea67938e88acf31066f7ee0.tar.gz |
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.
Diffstat (limited to 'gsk')
-rw-r--r-- | gsk/ngl/gsknglrenderjob.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gsk/ngl/gsknglrenderjob.c b/gsk/ngl/gsknglrenderjob.c index 92d659f976..4cccd89ba5 100644 --- a/gsk/ngl/gsknglrenderjob.c +++ b/gsk/ngl/gsknglrenderjob.c @@ -252,6 +252,9 @@ node_supports_transform (const GskRenderNode *node) case GSK_TEXT_NODE: return TRUE; + case GSK_SHADOW_NODE: + return node_supports_transform (gsk_shadow_node_get_child (node)); + case GSK_TRANSFORM_NODE: return node_supports_transform (gsk_transform_node_get_child (node)); |