mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 07:04:29 +00:00
snapshot: Only create clip nodes if we need to
Clip nodes have a clip rect and we only need to actually create a clip node if any child node gets clipped at all. If the clip rect conains the child node bounds entirely, we don't need a clip node.
This commit is contained in:
parent
7b60ee9316
commit
94184eda42
@ -548,6 +548,10 @@ gtk_snapshot_collect_clip (GtkSnapshot *snapshot,
|
|||||||
if (node == NULL)
|
if (node == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* Check if the child node will even be clipped */
|
||||||
|
if (graphene_rect_contains_rect (&state->data.clip.bounds, &node->bounds))
|
||||||
|
return node;
|
||||||
|
|
||||||
/* Its not uncommon to produce stacked clip nodes, which are trivial
|
/* Its not uncommon to produce stacked clip nodes, which are trivial
|
||||||
to merge, so do that here */
|
to merge, so do that here */
|
||||||
if (gsk_render_node_get_node_type (node) == GSK_CLIP_NODE)
|
if (gsk_render_node_get_node_type (node) == GSK_CLIP_NODE)
|
||||||
|
Loading…
Reference in New Issue
Block a user