clutter/paint-nodes: Push and pop framebuffer even without ops

ClutterLayerNode currently skips pushing and popping its framebuffer
to the paint context when no rectangles are added to it. However,
it's still useful to do that, since we might want to render child
nodes to the offscreen and reuse the pipeline in a later node.

Make ClutterLayerNode push and pop its framebuffer even without
rectangles.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1340
This commit is contained in:
Georges Basile Stavracas Neto 2020-06-29 15:23:10 -03:00
parent 03be5ed9f1
commit c261eb736a

View File

@ -1360,10 +1360,6 @@ clutter_layer_node_pre_draw (ClutterPaintNode *node,
if (lnode->offscreen == NULL)
return FALSE;
/* if no geometry was submitted for this node then we simply ignore it */
if (node->operations == NULL)
return FALSE;
if (lnode->update_modelview)
{
CoglFramebuffer *framebuffer;
@ -1414,6 +1410,10 @@ clutter_layer_node_post_draw (ClutterPaintNode *node,
cogl_framebuffer_pop_matrix (lnode->offscreen);
clutter_paint_context_pop_framebuffer (paint_context);
/* if no geometry was submitted for this node then we simply ignore it */
if (node->operations == NULL)
return;
fb = clutter_paint_context_get_framebuffer (paint_context);
for (i = 0; i < node->operations->len; i++)