From 3b64f56c5f75af06633797ad2fc723be66e6d602 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 29 Jun 2020 15:23:10 -0300 Subject: [PATCH] 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 --- clutter/clutter/clutter-paint-nodes.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/clutter/clutter/clutter-paint-nodes.c b/clutter/clutter/clutter-paint-nodes.c index 0f3a79213..af51f463c 100644 --- a/clutter/clutter/clutter-paint-nodes.c +++ b/clutter/clutter/clutter-paint-nodes.c @@ -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++)