[gtk] gl renderer: Handle repeat nodes with invisible children



commit ea810f176be50471a8f5b5a798aa551ef96bc717
Author: Timm Bäder <mail baedert org>
Date:   Tue Jan 7 17:15:02 2020 +0100

    gl renderer: Handle repeat nodes with invisible children
    
    We can handle this pretty easily by normally drawing the other
    (visible) child node, if any.

 gsk/gl/gskglrenderer.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index 157d827658..fc13695654 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -2179,14 +2179,24 @@ render_blend_node (GskGLRenderer   *self,
                           bottom_child,
                           &bottom_region, &is_offscreen1,
                           FORCE_OFFSCREEN | RESET_CLIP))
-    g_assert_not_reached ();
+    {
+      gsk_gl_renderer_add_render_ops (self, top_child, builder);
+      return;
+    }
 
   if (!add_offscreen_ops (self, builder,
                           &node->bounds,
                           top_child,
                           &top_region, &is_offscreen2,
                           FORCE_OFFSCREEN | RESET_CLIP))
-    g_assert_not_reached ();
+    {
+      load_vertex_data_with_region (ops_draw (builder, NULL),
+                                    node,
+                                    builder,
+                                    &bottom_region,
+                                    TRUE);
+      return;
+    }
 
   ops_set_program (builder, &self->blend_program);
   ops_set_texture (builder, bottom_region.texture_id);


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