gsk: Add some debug helpers
authorMatthias Clasen <mclasen@redhat.com>
Fri, 5 May 2023 10:57:08 +0000 (06:57 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 5 May 2023 16:05:09 +0000 (12:05 -0400)
gsk/gl/gskgldriver.c
gsk/gl/gskgldriverprivate.h

index d0af5e76da080555dcf64f31e117cde7c122b60f..1530056fcf0630693691acb5176085ff8d9259ee 100644 (file)
@@ -1121,19 +1121,21 @@ gsk_gl_driver_lookup_shader (GskGLDriver  *self,
 }
 
 #ifdef G_ENABLE_DEBUG
-static void
-write_atlas_to_png (GskGLDriver       *driver,
-                    GskGLTextureAtlas *atlas,
-                    const char        *filename)
+void
+gsk_gl_driver_save_texture_to_png (GskGLDriver       *driver,
+                                   int                texture_id,
+                                   int                width,
+                                   int                height,
+                                   const char        *filename)
 {
   GdkGLTextureBuilder *builder;
   GdkTexture *texture;
 
   builder = gdk_gl_texture_builder_new ();
   gdk_gl_texture_builder_set_context (builder, gsk_gl_driver_get_context (driver));
-  gdk_gl_texture_builder_set_id (builder, atlas->texture_id);
-  gdk_gl_texture_builder_set_width (builder, atlas->width);
-  gdk_gl_texture_builder_set_height (builder, atlas->height);
+  gdk_gl_texture_builder_set_id (builder, texture_id);
+  gdk_gl_texture_builder_set_width (builder, width);
+  gdk_gl_texture_builder_set_height (builder, height);
 
   texture = gdk_gl_texture_builder_build (builder, NULL, NULL);
   gdk_texture_save_to_png (texture, filename);
@@ -1168,7 +1170,7 @@ gsk_gl_driver_save_atlases_to_png (GskGLDriver *self,
                                         G_DIR_SEPARATOR_S,
                                         (int)self->current_frame_id,
                                         atlas->texture_id);
-      write_atlas_to_png (self, atlas, filename);
+      gsk_gl_driver_save_texture_to_png (self, atlas->texture_id, atlas->width, atlas->height, filename);
       g_free (filename);
     }
 
index 15340b0a1b5295a480af6823c28304bedd206a54..666d20090bd5688d2ddc6818f29f66170d375bbe 100644 (file)
@@ -176,8 +176,13 @@ GskGLProgram      * gsk_gl_driver_lookup_shader          (GskGLDriver         *s
                                                           GError             **error);
 
 #ifdef G_ENABLE_DEBUG
+void                gsk_gl_driver_save_texture_to_png    (GskGLDriver         *self,
+                                                          int                  texture_id,
+                                                          int                  width,
+                                                          int                  height,
+                                                          const char          *filename);
 void                gsk_gl_driver_save_atlases_to_png    (GskGLDriver         *self,
-                                                          const char          *directory);
+                                                          const char          *filename);
 #endif
 
 static inline GskGLTexture *