Debugging cleanups
Add some more debugging notes to the layout and paint node output.
This commit is contained in:
parent
a7714e294e
commit
1df14c1bac
@ -2056,24 +2056,24 @@ clutter_actor_notify_if_geometry_changed (ClutterActor *self,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gfloat xu, yu;
|
gfloat x, y;
|
||||||
gfloat widthu, heightu;
|
gfloat width, height;
|
||||||
|
|
||||||
xu = priv->allocation.x1;
|
x = priv->allocation.x1;
|
||||||
yu = priv->allocation.y1;
|
y = priv->allocation.y1;
|
||||||
widthu = priv->allocation.x2 - priv->allocation.x1;
|
width = priv->allocation.x2 - priv->allocation.x1;
|
||||||
heightu = priv->allocation.y2 - priv->allocation.y1;
|
height = priv->allocation.y2 - priv->allocation.y1;
|
||||||
|
|
||||||
if (xu != old->x1)
|
if (x != old->x1)
|
||||||
g_object_notify_by_pspec (obj, obj_props[PROP_X]);
|
g_object_notify_by_pspec (obj, obj_props[PROP_X]);
|
||||||
|
|
||||||
if (yu != old->y1)
|
if (y != old->y1)
|
||||||
g_object_notify_by_pspec (obj, obj_props[PROP_Y]);
|
g_object_notify_by_pspec (obj, obj_props[PROP_Y]);
|
||||||
|
|
||||||
if (widthu != (old->x2 - old->x1))
|
if (width != (old->x2 - old->x1))
|
||||||
g_object_notify_by_pspec (obj, obj_props[PROP_WIDTH]);
|
g_object_notify_by_pspec (obj, obj_props[PROP_WIDTH]);
|
||||||
|
|
||||||
if (heightu != (old->y2 - old->y1))
|
if (height != (old->y2 - old->y1))
|
||||||
g_object_notify_by_pspec (obj, obj_props[PROP_HEIGHT]);
|
g_object_notify_by_pspec (obj, obj_props[PROP_HEIGHT]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2129,7 +2129,9 @@ clutter_actor_set_allocation_internal (ClutterActor *self,
|
|||||||
priv->needs_height_request = FALSE;
|
priv->needs_height_request = FALSE;
|
||||||
priv->needs_allocation = FALSE;
|
priv->needs_allocation = FALSE;
|
||||||
|
|
||||||
if (x1_changed || y1_changed || x2_changed || y2_changed || flags_changed)
|
if (x1_changed || y1_changed ||
|
||||||
|
x2_changed || y2_changed ||
|
||||||
|
flags_changed)
|
||||||
{
|
{
|
||||||
CLUTTER_NOTE (LAYOUT, "Allocation for '%s' changed",
|
CLUTTER_NOTE (LAYOUT, "Allocation for '%s' changed",
|
||||||
_clutter_actor_get_debug_name (self));
|
_clutter_actor_get_debug_name (self));
|
||||||
@ -3541,30 +3543,22 @@ clutter_actor_continue_paint (ClutterActor *self)
|
|||||||
if (_clutter_context_get_pick_mode () == CLUTTER_PICK_NONE)
|
if (_clutter_context_get_pick_mode () == CLUTTER_PICK_NONE)
|
||||||
{
|
{
|
||||||
ClutterPaintNode *dummy;
|
ClutterPaintNode *dummy;
|
||||||
gboolean emit_paint = TRUE;
|
|
||||||
|
|
||||||
/* XXX - this will go away in 2.0, when we can get rid of this
|
/* XXX - this will go away in 2.0, when we can get rid of this
|
||||||
* stuff and switch to a pure retained render tree of PaintNodes
|
* stuff and switch to a pure retained render tree of PaintNodes
|
||||||
* for the entire frame, starting from the Stage; the paint()
|
* for the entire frame, starting from the Stage; the paint()
|
||||||
* virtual function can then be called directly.
|
* virtual function can then be called directly.
|
||||||
*/
|
*/
|
||||||
dummy = _clutter_dummy_node_new ();
|
dummy = _clutter_dummy_node_new (self);
|
||||||
clutter_paint_node_set_name (dummy, "Root");
|
clutter_paint_node_set_name (dummy, "Root");
|
||||||
|
|
||||||
/* XXX - for 1.12, we use the return value of paint_node() to
|
/* XXX - for 1.12, we use the return value of paint_node() to
|
||||||
* set the emit_paint variable.
|
* decide whether we should emit the ::paint signal.
|
||||||
*/
|
*/
|
||||||
clutter_actor_paint_node (self, dummy);
|
clutter_actor_paint_node (self, dummy);
|
||||||
clutter_paint_node_unref (dummy);
|
clutter_paint_node_unref (dummy);
|
||||||
|
|
||||||
if (emit_paint || CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
g_signal_emit (self, actor_signals[PAINT], 0);
|
||||||
g_signal_emit (self, actor_signals[PAINT], 0);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CLUTTER_NOTE (PAINT, "The actor '%s' painted using PaintNodes, "
|
|
||||||
"skipping the emission of the paint signal.",
|
|
||||||
_clutter_actor_get_debug_name (self));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -8154,6 +8148,16 @@ clutter_actor_update_constraints (ClutterActor *self,
|
|||||||
_clutter_constraint_update_allocation (constraint,
|
_clutter_constraint_update_allocation (constraint,
|
||||||
self,
|
self,
|
||||||
allocation);
|
allocation);
|
||||||
|
|
||||||
|
CLUTTER_NOTE (LAYOUT,
|
||||||
|
"Allocation of '%s' after constraint '%s': "
|
||||||
|
"{ %.2f, %.2f, %.2f, %.2f }",
|
||||||
|
_clutter_actor_get_debug_name (self),
|
||||||
|
_clutter_actor_meta_get_debug_name (meta),
|
||||||
|
allocation->x1,
|
||||||
|
allocation->y1,
|
||||||
|
allocation->x2,
|
||||||
|
allocation->y2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8372,6 +8376,9 @@ clutter_actor_allocate (ClutterActor *self,
|
|||||||
|
|
||||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IN_RELAYOUT);
|
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IN_RELAYOUT);
|
||||||
|
|
||||||
|
CLUTTER_NOTE (LAYOUT, "Calling %s::allocate()",
|
||||||
|
_clutter_actor_get_debug_name (self));
|
||||||
|
|
||||||
klass = CLUTTER_ACTOR_GET_CLASS (self);
|
klass = CLUTTER_ACTOR_GET_CLASS (self);
|
||||||
klass->allocate (self, &real_allocation, flags);
|
klass->allocate (self, &real_allocation, flags);
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ ClutterPaintNode * _clutter_root_node_new (CoglFra
|
|||||||
CoglBufferBit clear_flags,
|
CoglBufferBit clear_flags,
|
||||||
const CoglMatrix *matrix);
|
const CoglMatrix *matrix);
|
||||||
ClutterPaintNode * _clutter_transform_node_new (const CoglMatrix *matrix);
|
ClutterPaintNode * _clutter_transform_node_new (const CoglMatrix *matrix);
|
||||||
ClutterPaintNode * _clutter_dummy_node_new (void);
|
ClutterPaintNode * _clutter_dummy_node_new (ClutterActor *actor);
|
||||||
|
|
||||||
void _clutter_paint_node_paint (ClutterPaintNode *root);
|
void _clutter_paint_node_paint (ClutterPaintNode *root);
|
||||||
void _clutter_paint_node_dump_tree (ClutterPaintNode *root);
|
void _clutter_paint_node_dump_tree (ClutterPaintNode *root);
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include <pango/pango.h>
|
#include <pango/pango.h>
|
||||||
#include <cogl/cogl.h>
|
#include <cogl/cogl.h>
|
||||||
|
|
||||||
|
#include "clutter-actor-private.h"
|
||||||
#include "clutter-color.h"
|
#include "clutter-color.h"
|
||||||
#include "clutter-debug.h"
|
#include "clutter-debug.h"
|
||||||
#include "clutter-private.h"
|
#include "clutter-private.h"
|
||||||
@ -265,6 +266,8 @@ typedef struct _ClutterPaintNodeClass ClutterDummyNodeClass;
|
|||||||
struct _ClutterDummyNode
|
struct _ClutterDummyNode
|
||||||
{
|
{
|
||||||
ClutterPaintNode parent_instance;
|
ClutterPaintNode parent_instance;
|
||||||
|
|
||||||
|
ClutterActor *actor;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (ClutterDummyNode, clutter_dummy_node, CLUTTER_TYPE_PAINT_NODE)
|
G_DEFINE_TYPE (ClutterDummyNode, clutter_dummy_node, CLUTTER_TYPE_PAINT_NODE)
|
||||||
@ -275,12 +278,37 @@ clutter_dummy_node_pre_draw (ClutterPaintNode *node)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static JsonNode *
|
||||||
|
clutter_dummy_node_serialize (ClutterPaintNode *node)
|
||||||
|
{
|
||||||
|
ClutterDummyNode *dnode = (ClutterDummyNode *) node;
|
||||||
|
JsonBuilder *builder;
|
||||||
|
JsonNode *res;
|
||||||
|
|
||||||
|
if (dnode->actor == NULL)
|
||||||
|
return json_node_new (JSON_NODE_NULL);
|
||||||
|
|
||||||
|
builder = json_builder_new ();
|
||||||
|
json_builder_begin_object (builder);
|
||||||
|
|
||||||
|
json_builder_set_member_name (builder, "actor");
|
||||||
|
json_builder_add_string_value (builder, _clutter_actor_get_debug_name (dnode->actor));
|
||||||
|
|
||||||
|
json_builder_end_object (builder);
|
||||||
|
|
||||||
|
res = json_builder_get_root (builder);
|
||||||
|
g_object_unref (builder);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
clutter_dummy_node_class_init (ClutterDummyNodeClass *klass)
|
clutter_dummy_node_class_init (ClutterDummyNodeClass *klass)
|
||||||
{
|
{
|
||||||
ClutterPaintNodeClass *node_class = CLUTTER_PAINT_NODE_CLASS (klass);
|
ClutterPaintNodeClass *node_class = CLUTTER_PAINT_NODE_CLASS (klass);
|
||||||
|
|
||||||
node_class->pre_draw = clutter_dummy_node_pre_draw;
|
node_class->pre_draw = clutter_dummy_node_pre_draw;
|
||||||
|
node_class->serialize = clutter_dummy_node_serialize;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -289,9 +317,15 @@ clutter_dummy_node_init (ClutterDummyNode *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ClutterPaintNode *
|
ClutterPaintNode *
|
||||||
_clutter_dummy_node_new (void)
|
_clutter_dummy_node_new (ClutterActor *actor)
|
||||||
{
|
{
|
||||||
return _clutter_paint_node_create (_clutter_dummy_node_get_type ());
|
ClutterPaintNode *res;
|
||||||
|
|
||||||
|
res = _clutter_paint_node_create (_clutter_dummy_node_get_type ());
|
||||||
|
|
||||||
|
((ClutterDummyNode *) res)->actor = actor;
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user