From b2089b89cccbfafd9da4e58656f8680a431efafa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 31 Mar 2019 06:14:41 +0200 Subject: [PATCH] gl renderer: Add debug code to dump framebuffer This way we can specify it on specific add_offscreen_ops callsites. --- gsk/gl/gskglrenderer.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index 599c7a760c..44c43d0d4f 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -58,9 +58,10 @@ typedef enum { - FORCE_OFFSCREEN = 1 << 0, - RESET_CLIP = 1 << 1, - RESET_OPACITY = 1 << 2 + FORCE_OFFSCREEN = 1 << 0, + RESET_CLIP = 1 << 1, + RESET_OPACITY = 1 << 2, + DUMP_FRAMEBUFFER = 1 << 3 } OffscreenFlags; static void G_GNUC_UNUSED @@ -2673,6 +2674,18 @@ add_offscreen_ops (GskGLRenderer *self, gsk_gl_renderer_add_render_ops (self, child_node, builder); +#ifdef G_ENABLE_DEBUG + if (G_UNLIKELY (flags & DUMP_FRAMEBUFFER)) + { + static int k; + ops_dump_framebuffer (builder, g_strdup_printf ("%s_%p_%d.png", + child_node->node_class->type_name, + child_node, + k ++), + width, height); + } +#endif + if (flags & RESET_OPACITY) ops_set_opacity (builder, prev_opacity);