From 4c75389baa3ff0c2c48c73f3dfa619b4d9eb43f0 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. Part-of: --- 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 652141c4b..5c3f76b2f 100644 --- a/clutter/clutter/clutter-paint-nodes.c +++ b/clutter/clutter/clutter-paint-nodes.c @@ -1473,6 +1473,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) { @@ -1482,6 +1501,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