gl renderer: handle cross-fade nodes with invisible children
authorTimm Bäder <mail@baedert.org>
Wed, 22 Jan 2020 07:38:55 +0000 (08:38 +0100)
committerTimm Bäder <mail@baedert.org>
Fri, 24 Jan 2020 05:19:16 +0000 (06:19 +0100)
gsk/gl/gskglrenderer.c

index 0817849e730c99cbd64abbfcfaef279e3a54f89f..65933080c0e9abd570407ee1372d354bb2942037 100644 (file)
@@ -2155,14 +2155,24 @@ render_cross_fade_node (GskGLRenderer   *self,
                           start_node,
                           &start_region, &is_offscreen1,
                           FORCE_OFFSCREEN | RESET_CLIP | RESET_OPACITY))
-    g_assert_not_reached ();
+    {
+      gsk_gl_renderer_add_render_ops (self, end_node, builder);
+      return;
+    }
 
   if (!add_offscreen_ops (self, builder,
                           &node->bounds,
                           end_node,
                           &end_region, &is_offscreen2,
                           FORCE_OFFSCREEN | RESET_CLIP | RESET_OPACITY))
-    g_assert_not_reached ();
+    {
+      load_vertex_data_with_region (ops_draw (builder, NULL),
+                                    node,
+                                    builder,
+                                    &start_region,
+                                    TRUE);
+      return;
+    }
 
   ops_set_program (builder, &self->cross_fade_program);