From d4f0593b375707d88f6e024b55d58b78993505b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 21 Jun 2020 07:17:54 +0200 Subject: [PATCH] gl renderer: Handle 0/1 progress in crossfade nodes --- gsk/gl/gskglrenderer.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index a451338d59..b626c9e7ce 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -2241,12 +2241,23 @@ render_cross_fade_node (GskGLRenderer *self, { GskRenderNode *start_node = gsk_cross_fade_node_get_start_child (node); GskRenderNode *end_node = gsk_cross_fade_node_get_end_child (node); - float progress = gsk_cross_fade_node_get_progress (node); + const float progress = gsk_cross_fade_node_get_progress (node); TextureRegion start_region; TextureRegion end_region; gboolean is_offscreen1, is_offscreen2; OpCrossFade *op; + if (progress <= 0) + { + gsk_gl_renderer_add_render_ops (self, start_node, builder); + return; + } + else if (progress >= 1) + { + gsk_gl_renderer_add_render_ops (self, end_node, builder); + return; + } + /* TODO: We create 2 textures here as big as the cross-fade node, but both the * start and the end node might be a lot smaller than that. */