[gtk] gl renderer: Add debug code to dump framebuffer



commit b2089b89cccbfafd9da4e58656f8680a431efafa
Author: Timm Bäder <mail baedert org>
Date:   Sun Mar 31 06:14:41 2019 +0200

    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);
 


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