node-editor: Embed textures in testcases
authorMatthias Clasen <mclasen@redhat.com>
Sun, 19 Mar 2023 14:04:46 +0000 (10:04 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 19 Mar 2023 14:04:46 +0000 (10:04 -0400)
It is useless to have node files with references
to external files in the testsuite, so turn such
textures into data urls by doing a serialization
roundtrip.

demos/node-editor/node-editor-window.c

index 3fe3d818c7a265671f816852ffac8b72436cfa0d..5c38140162becc8ff8f6a36e751b1b543b68ab13 100644 (file)
@@ -1017,6 +1017,19 @@ testcase_save_clicked_cb (GtkWidget        *button,
     }
 
   text = get_current_text (self->text_buffer);
+  {
+    GBytes *bytes;
+    GskRenderNode *node;
+    gsize size;
+
+    bytes = g_bytes_new_take (text, strlen (text) + 1);
+    node = gsk_render_node_deserialize (bytes, NULL, NULL);
+    g_bytes_unref (bytes);
+    bytes = gsk_render_node_serialize (node);
+    gsk_render_node_unref (node);
+    text = g_bytes_unref_to_data (bytes, &size);
+  }
+
   if (!g_file_set_contents (node_file, text, -1, &error))
     {
       gtk_label_set_label (GTK_LABEL (self->testcase_error_label), error->message);