[mutter/gbsneto/effects-paint-nodes: 103/105] clutter/paint-nodes: Push and pop framebuffer even without ops




commit 3b64f56c5f75af06633797ad2fc723be66e6d602
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Jun 29 15:23:10 2020 -0300

    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 0f3a792137..af51f463ca 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++)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]