From bc81f17d5f866bc224c1ee1b6e7de425d40c2681 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 29 Jun 2020 15:26:15 -0300 Subject: [PATCH] clutter/paint-nodes: Add serialization to layer node It's useful to know which framebuffer the layer node is holding, so serialize that too. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1340 --- clutter/clutter/clutter-paint-nodes.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/clutter/clutter/clutter-paint-nodes.c b/clutter/clutter/clutter-paint-nodes.c index af51f463c..86f605997 100644 --- a/clutter/clutter/clutter-paint-nodes.c +++ b/clutter/clutter/clutter-paint-nodes.c @@ -1474,6 +1474,25 @@ clutter_layer_node_finalize (ClutterPaintNode *node) CLUTTER_PAINT_NODE_CLASS (clutter_layer_node_parent_class)->finalize (node); } +static JsonNode * +clutter_layer_node_serialize (ClutterPaintNode *node) +{ + ClutterLayerNode *layer_node = CLUTTER_LAYER_NODE (node); + g_autoptr (JsonBuilder) builder = NULL; + g_autofree char *framebuffer_ptr = NULL; + + builder = json_builder_new (); + + framebuffer_ptr = g_strdup_printf ("%p", layer_node->offscreen); + + json_builder_begin_object (builder); + json_builder_set_member_name (builder, "framebuffer"); + json_builder_add_string_value (builder, framebuffer_ptr); + json_builder_end_object (builder); + + return json_builder_get_root (builder); +} + static void clutter_layer_node_class_init (ClutterLayerNodeClass *klass) { @@ -1483,6 +1502,7 @@ clutter_layer_node_class_init (ClutterLayerNodeClass *klass) node_class->pre_draw = clutter_layer_node_pre_draw; node_class->post_draw = clutter_layer_node_post_draw; node_class->finalize = clutter_layer_node_finalize; + node_class->serialize = clutter_layer_node_serialize; } static void