Clean up the private flags for ClutterActor
Provide macros to quickly query a flag, and remove all namespacing except the initial 'CLUTTER'.
This commit is contained in:
parent
0dfbf010b8
commit
eae4561929
@ -676,11 +676,11 @@ clutter_actor_verify_map_state (ClutterActor *self)
|
||||
/* all bets are off during reparent when we're potentially realized,
|
||||
* but should not be according to invariants
|
||||
*/
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_REPARENT))
|
||||
if (!CLUTTER_ACTOR_IN_REPARENT (self))
|
||||
{
|
||||
if (priv->parent_actor == NULL)
|
||||
{
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
}
|
||||
else
|
||||
@ -706,14 +706,14 @@ clutter_actor_verify_map_state (ClutterActor *self)
|
||||
/* remaining bets are off during reparent when we're potentially
|
||||
* mapped, but should not be according to invariants
|
||||
*/
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_REPARENT))
|
||||
if (!CLUTTER_ACTOR_IN_REPARENT (self))
|
||||
{
|
||||
if (priv->parent_actor == NULL)
|
||||
{
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
if (!CLUTTER_ACTOR_IS_VISIBLE (self) &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION))
|
||||
!CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
{
|
||||
g_warning ("Toplevel actor '%s' is mapped "
|
||||
"but not visible",
|
||||
@ -759,8 +759,7 @@ clutter_actor_verify_map_state (ClutterActor *self)
|
||||
get_actor_debug_name (priv->parent_actor));
|
||||
}
|
||||
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (priv->parent_actor) &
|
||||
CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (priv->parent_actor))
|
||||
{
|
||||
if (!CLUTTER_ACTOR_IS_MAPPED (priv->parent_actor))
|
||||
g_warning ("Actor '%s' is mapped but its non-toplevel "
|
||||
@ -805,7 +804,7 @@ clutter_actor_update_map_state (ClutterActor *self,
|
||||
|
||||
was_mapped = CLUTTER_ACTOR_IS_MAPPED (self);
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
/* the mapped flag on top-level actors must be set by the
|
||||
* per-backend implementation because it might be asynchronous.
|
||||
@ -855,7 +854,7 @@ clutter_actor_update_map_state (ClutterActor *self,
|
||||
|
||||
if (CLUTTER_ACTOR_IS_MAPPED (self) &&
|
||||
!CLUTTER_ACTOR_IS_VISIBLE (self) &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION))
|
||||
!CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
{
|
||||
g_warning ("Clutter toplevel of type '%s' is not visible, but "
|
||||
"it is somehow still mapped",
|
||||
@ -914,8 +913,7 @@ clutter_actor_update_map_state (ClutterActor *self,
|
||||
gboolean parent_is_visible_realized_toplevel;
|
||||
|
||||
parent_is_visible_realized_toplevel =
|
||||
(((CLUTTER_PRIVATE_FLAGS (parent) &
|
||||
CLUTTER_ACTOR_IS_TOPLEVEL) != 0) &&
|
||||
(CLUTTER_ACTOR_IS_TOPLEVEL (parent) &&
|
||||
CLUTTER_ACTOR_IS_VISIBLE (parent) &&
|
||||
CLUTTER_ACTOR_IS_REALIZED (parent));
|
||||
|
||||
@ -967,11 +965,8 @@ clutter_actor_update_map_state (ClutterActor *self,
|
||||
*/
|
||||
|
||||
/* Unmap */
|
||||
if (!should_be_mapped &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_REPARENT))
|
||||
{
|
||||
clutter_actor_set_mapped (self, FALSE);
|
||||
}
|
||||
if (!should_be_mapped && !CLUTTER_ACTOR_IN_REPARENT (self))
|
||||
clutter_actor_set_mapped (self, FALSE);
|
||||
|
||||
/* Realize */
|
||||
if (must_be_realized)
|
||||
@ -981,8 +976,7 @@ clutter_actor_update_map_state (ClutterActor *self,
|
||||
g_assert (!(must_be_realized && !may_be_realized));
|
||||
|
||||
/* Unrealize */
|
||||
if (!may_be_realized &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_REPARENT))
|
||||
if (!may_be_realized && !CLUTTER_ACTOR_IN_REPARENT (self))
|
||||
clutter_actor_unrealize_not_hiding (self);
|
||||
|
||||
/* Map */
|
||||
@ -1078,7 +1072,7 @@ clutter_actor_real_unmap (ClutterActor *self)
|
||||
g_object_notify (G_OBJECT (self), "mapped");
|
||||
|
||||
/* relinquish keyboard focus if we were unmapped while owning it */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
ClutterActor *stage;
|
||||
|
||||
@ -1353,7 +1347,7 @@ clutter_actor_realize (ClutterActor *self)
|
||||
if (priv->parent_actor != NULL)
|
||||
clutter_actor_realize (priv->parent_actor);
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
/* toplevels can be realized at any time */
|
||||
}
|
||||
@ -1762,7 +1756,7 @@ clutter_actor_queue_redraw_with_origin (ClutterActor *self,
|
||||
ClutterActor *origin)
|
||||
{
|
||||
/* no point in queuing a redraw on a destroyed actor */
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
return;
|
||||
|
||||
/* NB: We can't bail out early here if the actor is hidden in case
|
||||
@ -1786,7 +1780,7 @@ clutter_actor_real_queue_redraw (ClutterActor *self,
|
||||
: "same actor");
|
||||
|
||||
/* no point in queuing a redraw on a destroyed actor */
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
return;
|
||||
|
||||
/* If the actor isn't visible, we still had to emit the signal
|
||||
@ -1831,7 +1825,7 @@ clutter_actor_real_queue_relayout (ClutterActor *self)
|
||||
ClutterActorPrivate *priv = self->priv;
|
||||
|
||||
/* no point in queueing a redraw on a destroyed actor */
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
return;
|
||||
|
||||
priv->needs_width_request = TRUE;
|
||||
@ -2661,7 +2655,7 @@ clutter_actor_paint (ClutterActor *self)
|
||||
* actors with 0 opacity to be a NOP... */
|
||||
if (context->pick_mode == CLUTTER_PICK_NONE &&
|
||||
/* ignore top-levels, since they might be transparent */
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL) &&
|
||||
!CLUTTER_ACTOR_IS_TOPLEVEL (self) &&
|
||||
/* If the actor is being painted from a clone then check the
|
||||
clone's opacity instead */
|
||||
(priv->opacity_parent ? priv->opacity_parent->priv : priv)->opacity == 0)
|
||||
@ -2677,7 +2671,7 @@ clutter_actor_paint (ClutterActor *self)
|
||||
return;
|
||||
|
||||
/* mark that we are in the paint process */
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_PAINT);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IN_PAINT);
|
||||
|
||||
cogl_push_matrix();
|
||||
|
||||
@ -2743,7 +2737,7 @@ clutter_actor_paint (ClutterActor *self)
|
||||
cogl_pop_matrix();
|
||||
|
||||
/* paint sequence complete */
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_PAINT);
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_IN_PAINT);
|
||||
}
|
||||
|
||||
/* internal helper function set the rotation angle without affecting
|
||||
@ -3351,7 +3345,7 @@ clutter_actor_dispose (GObject *object)
|
||||
* is an internal child and has been marked as such
|
||||
*/
|
||||
if (CLUTTER_IS_CONTAINER (parent) &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_INTERNAL_CHILD))
|
||||
!CLUTTER_ACTOR_IS_INTERNAL_CHILD (self))
|
||||
{
|
||||
clutter_container_remove_actor (CLUTTER_CONTAINER (parent), self);
|
||||
}
|
||||
@ -3362,7 +3356,7 @@ clutter_actor_dispose (GObject *object)
|
||||
/* parent should be gone */
|
||||
g_assert (priv->parent_actor == NULL);
|
||||
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
/* can't be mapped or realized with no parent */
|
||||
g_assert (!CLUTTER_ACTOR_IS_MAPPED (self));
|
||||
@ -4900,19 +4894,19 @@ clutter_actor_destroy (ClutterActor *self)
|
||||
g_object_ref (self);
|
||||
|
||||
/* avoid recursion while destroying */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION))
|
||||
if (!CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
{
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_DESTRUCTION);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IN_DESTRUCTION);
|
||||
|
||||
/* if we are destroying we want to unrealize ourselves
|
||||
* first before the dispose run removes the parent
|
||||
*/
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
clutter_actor_update_map_state (self, MAP_STATE_MAKE_UNREALIZED);
|
||||
|
||||
g_object_run_dispose (G_OBJECT (self));
|
||||
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_DESTRUCTION);
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_IN_DESTRUCTION);
|
||||
}
|
||||
|
||||
g_object_unref (self);
|
||||
@ -5036,8 +5030,8 @@ _clutter_actor_queue_redraw_with_clip (ClutterActor *self,
|
||||
* avoid needlessly traversing the actors ancestors to derive an
|
||||
* incorrect modelview matrix.)
|
||||
*/
|
||||
if ((CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_SYNC_MATRICES) &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_STAGE_IN_RESIZE))
|
||||
if ((CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_SYNC_MATRICES) &&
|
||||
!CLUTTER_STAGE_IN_RESIZE (self))
|
||||
{
|
||||
clutter_actor_queue_redraw (self);
|
||||
return;
|
||||
@ -5094,8 +5088,7 @@ clutter_actor_queue_relayout (ClutterActor *self)
|
||||
return; /* save some cpu cycles */
|
||||
|
||||
#if CLUTTER_ENABLE_DEBUG
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL) &&
|
||||
(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_RELAYOUT))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self) && CLUTTER_ACTOR_IN_RELAYOUT (self))
|
||||
{
|
||||
g_warning ("The actor '%s' is currently inside an allocation "
|
||||
"cycle; calling clutter_actor_queue_relayout() is "
|
||||
@ -5553,12 +5546,12 @@ clutter_actor_allocate (ClutterActor *self,
|
||||
if (child_moved)
|
||||
flags |= CLUTTER_ABSOLUTE_ORIGIN_CHANGED;
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_RELAYOUT);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IN_RELAYOUT);
|
||||
|
||||
klass = CLUTTER_ACTOR_GET_CLASS (self);
|
||||
klass->allocate (self, box, flags);
|
||||
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_RELAYOUT);
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_IN_RELAYOUT);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -5727,7 +5720,7 @@ clutter_actor_set_min_width (ClutterActor *self,
|
||||
* then we ignore the passed value and we override it with
|
||||
* the stage implementation's preferred size.
|
||||
*/
|
||||
if ((CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL) &&
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self) &&
|
||||
clutter_feature_available (CLUTTER_FEATURE_STAGE_STATIC))
|
||||
return;
|
||||
|
||||
@ -5762,7 +5755,7 @@ clutter_actor_set_min_height (ClutterActor *self,
|
||||
* then we ignore the passed value and we override it with
|
||||
* the stage implementation's preferred size.
|
||||
*/
|
||||
if ((CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL) &&
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self) &&
|
||||
clutter_feature_available (CLUTTER_FEATURE_STAGE_STATIC))
|
||||
return;
|
||||
|
||||
@ -5796,7 +5789,7 @@ clutter_actor_set_natural_width (ClutterActor *self,
|
||||
* then we ignore the passed value and we override it with
|
||||
* the stage implementation's preferred size.
|
||||
*/
|
||||
if ((CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL) &&
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self) &&
|
||||
clutter_feature_available (CLUTTER_FEATURE_STAGE_STATIC))
|
||||
return;
|
||||
|
||||
@ -5831,7 +5824,7 @@ clutter_actor_set_natural_height (ClutterActor *self,
|
||||
* then we ignore the passed value and we override it with
|
||||
* the stage implementation's preferred size.
|
||||
*/
|
||||
if ((CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL) &&
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self) &&
|
||||
clutter_feature_available (CLUTTER_FEATURE_STAGE_STATIC))
|
||||
return;
|
||||
|
||||
@ -6002,7 +5995,7 @@ clutter_actor_set_width_internal (ClutterActor *self,
|
||||
* width to be resized to, so we should not be setting it
|
||||
* along with the :natural-width
|
||||
*/
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
clutter_actor_set_min_width (self, width);
|
||||
|
||||
clutter_actor_set_natural_width (self, width);
|
||||
@ -6010,7 +6003,7 @@ clutter_actor_set_width_internal (ClutterActor *self,
|
||||
else
|
||||
{
|
||||
/* we only unset the :natural-width for the Stage */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
clutter_actor_set_min_width_set (self, FALSE);
|
||||
|
||||
clutter_actor_set_natural_width_set (self, FALSE);
|
||||
@ -6027,7 +6020,7 @@ clutter_actor_set_height_internal (ClutterActor *self,
|
||||
if (height >= 0)
|
||||
{
|
||||
/* see the comment above in set_width_internal() */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
clutter_actor_set_min_height (self, height);
|
||||
|
||||
clutter_actor_set_natural_height (self, height);
|
||||
@ -6035,7 +6028,7 @@ clutter_actor_set_height_internal (ClutterActor *self,
|
||||
else
|
||||
{
|
||||
/* see the comment above in set_width_internal() */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
clutter_actor_set_min_height_set (self, FALSE);
|
||||
|
||||
clutter_actor_set_natural_height_set (self, FALSE);
|
||||
@ -6829,7 +6822,7 @@ clutter_actor_get_paint_opacity_internal (ClutterActor *self)
|
||||
* case of ClutterStage:use-alpha being TRUE we want the rest
|
||||
* of the scene to be painted
|
||||
*/
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
return 255;
|
||||
|
||||
if (priv->opacity_parent != NULL)
|
||||
@ -7351,13 +7344,13 @@ clutter_actor_set_parent (ClutterActor *self,
|
||||
return;
|
||||
}
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
g_warning ("Cannot set a parent on a toplevel actor\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (parent) & CLUTTER_ACTOR_IN_DESTRUCTION)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
{
|
||||
g_warning ("Cannot set a parent currently being destroyed");
|
||||
return;
|
||||
@ -7370,10 +7363,10 @@ clutter_actor_set_parent (ClutterActor *self,
|
||||
* the flag on the actor
|
||||
*/
|
||||
if (parent->priv->internal_child)
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_INTERNAL_CHILD);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_INTERNAL_CHILD);
|
||||
|
||||
/* clutter_actor_reparent() will emit ::parent-set for us */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_REPARENT))
|
||||
if (!CLUTTER_ACTOR_IN_REPARENT (self))
|
||||
g_signal_emit (self, actor_signals[PARENT_SET], 0, NULL);
|
||||
|
||||
/* If parent is mapped or realized, we need to also be mapped or
|
||||
@ -7488,7 +7481,7 @@ clutter_actor_unparent (ClutterActor *self)
|
||||
priv->parent_actor = NULL;
|
||||
|
||||
/* clutter_actor_reparent() will emit ::parent-set for us */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_REPARENT))
|
||||
if (!CLUTTER_ACTOR_IN_REPARENT (self))
|
||||
g_signal_emit (self, actor_signals[PARENT_SET], 0, old_parent);
|
||||
|
||||
/* Queue a redraw on old_parent only if we were painted in the first
|
||||
@ -7525,13 +7518,13 @@ clutter_actor_reparent (ClutterActor *self,
|
||||
g_return_if_fail (CLUTTER_IS_ACTOR (new_parent));
|
||||
g_return_if_fail (self != new_parent);
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IS_TOPLEVEL)
|
||||
if (CLUTTER_ACTOR_IS_TOPLEVEL (self))
|
||||
{
|
||||
g_warning ("Cannot set a parent on a toplevel actor");
|
||||
return;
|
||||
}
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (new_parent) & CLUTTER_ACTOR_IN_DESTRUCTION)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (self))
|
||||
{
|
||||
g_warning ("Cannot set a parent currently being destroyed");
|
||||
return;
|
||||
@ -7543,7 +7536,7 @@ clutter_actor_reparent (ClutterActor *self,
|
||||
{
|
||||
ClutterActor *old_parent;
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_REPARENT);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IN_REPARENT);
|
||||
|
||||
old_parent = priv->parent_actor;
|
||||
|
||||
@ -7553,7 +7546,7 @@ clutter_actor_reparent (ClutterActor *self,
|
||||
* child and not an internal one
|
||||
*/
|
||||
if (CLUTTER_IS_CONTAINER (priv->parent_actor) &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_INTERNAL_CHILD))
|
||||
!CLUTTER_ACTOR_IS_INTERNAL_CHILD (self))
|
||||
{
|
||||
ClutterContainer *parent = CLUTTER_CONTAINER (priv->parent_actor);
|
||||
|
||||
@ -7574,7 +7567,7 @@ clutter_actor_reparent (ClutterActor *self,
|
||||
|
||||
g_object_unref (self);
|
||||
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IN_REPARENT);
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (self, CLUTTER_IN_REPARENT);
|
||||
|
||||
/* the IN_REPARENT flag suspends state updates */
|
||||
clutter_actor_update_map_state (self, MAP_STATE_CHECK);
|
||||
@ -9803,7 +9796,7 @@ clutter_actor_is_scaled (ClutterActor *self)
|
||||
static ClutterActor *
|
||||
clutter_actor_get_stage_internal (ClutterActor *actor)
|
||||
{
|
||||
while (actor && !(CLUTTER_PRIVATE_FLAGS (actor) & CLUTTER_ACTOR_IS_TOPLEVEL))
|
||||
while (actor && !CLUTTER_ACTOR_IS_TOPLEVEL (actor))
|
||||
actor = actor->priv->parent_actor;
|
||||
|
||||
return actor;
|
||||
|
@ -432,7 +432,7 @@ _clutter_backend_ensure_context (ClutterBackend *backend,
|
||||
if (current_context_stage)
|
||||
{
|
||||
CLUTTER_SET_PRIVATE_FLAGS (current_context_stage,
|
||||
CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -96,7 +96,7 @@ enum
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
#define clutter_warn_if_paint_fail(obj) G_STMT_START { \
|
||||
if (CLUTTER_PRIVATE_FLAGS ((obj)) & CLUTTER_ACTOR_IN_PAINT) { \
|
||||
if (CLUTTER_ACTOR_IN_PAINT (obj)) { \
|
||||
g_warning ("%s should not be called during the paint sequence " \
|
||||
"of a ClutterCairoTexture as it will likely cause " \
|
||||
"performance issues.", G_STRFUNC); \
|
||||
|
@ -236,12 +236,12 @@ _clutter_stage_maybe_relayout (ClutterActor *stage)
|
||||
0 /* no application private data */);
|
||||
|
||||
/* avoid reentrancy */
|
||||
if (!(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_RELAYOUT))
|
||||
if (!CLUTTER_ACTOR_IN_RELAYOUT (stage))
|
||||
{
|
||||
CLUTTER_TIMER_START (_clutter_uprof_context, relayout_timer);
|
||||
CLUTTER_NOTE (ACTOR, "Recomputing layout");
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_IN_RELAYOUT);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_IN_RELAYOUT);
|
||||
|
||||
natural_width = natural_height = 0;
|
||||
clutter_actor_get_preferred_size (stage,
|
||||
@ -259,7 +259,7 @@ _clutter_stage_maybe_relayout (ClutterActor *stage)
|
||||
|
||||
clutter_actor_allocate (stage, &box, CLUTTER_ALLOCATION_NONE);
|
||||
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_IN_RELAYOUT);
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (stage, CLUTTER_IN_RELAYOUT);
|
||||
CLUTTER_TIMER_STOP (_clutter_uprof_context, relayout_timer);
|
||||
}
|
||||
}
|
||||
@ -267,8 +267,8 @@ _clutter_stage_maybe_relayout (ClutterActor *stage)
|
||||
void
|
||||
_clutter_stage_maybe_setup_viewport (ClutterStage *stage)
|
||||
{
|
||||
if ((CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_SYNC_MATRICES) &&
|
||||
!(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_STAGE_IN_RESIZE))
|
||||
if ((CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_SYNC_MATRICES) &&
|
||||
!CLUTTER_STAGE_IN_RESIZE (stage))
|
||||
{
|
||||
ClutterPerspective perspective;
|
||||
gfloat width, height;
|
||||
@ -288,7 +288,7 @@ _clutter_stage_maybe_setup_viewport (ClutterStage *stage)
|
||||
perspective.z_near,
|
||||
perspective.z_far);
|
||||
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (stage, CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,32 +56,44 @@ G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ClutterMainContext ClutterMainContext;
|
||||
|
||||
typedef enum {
|
||||
CLUTTER_ACTOR_UNUSED_FLAG = 0,
|
||||
#define CLUTTER_PRIVATE_FLAGS(a) (((ClutterActor *) (a))->private_flags)
|
||||
#define CLUTTER_SET_PRIVATE_FLAGS(a,f) (CLUTTER_PRIVATE_FLAGS (a) |= (f))
|
||||
#define CLUTTER_UNSET_PRIVATE_FLAGS(a,f) (CLUTTER_PRIVATE_FLAGS (a) &= ~(f))
|
||||
|
||||
CLUTTER_ACTOR_IN_DESTRUCTION = 1 << 0,
|
||||
CLUTTER_ACTOR_IS_TOPLEVEL = 1 << 1,
|
||||
CLUTTER_ACTOR_IN_REPARENT = 1 << 2,
|
||||
#define CLUTTER_ACTOR_IS_TOPLEVEL(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_IS_TOPLEVEL) != FALSE)
|
||||
#define CLUTTER_ACTOR_IS_INTERNAL_CHILD(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_INTERNAL_CHILD) != FALSE)
|
||||
#define CLUTTER_ACTOR_IN_DESTRUCTION(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_IN_DESTRUCTION) != FALSE)
|
||||
#define CLUTTER_ACTOR_IN_REPARENT(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_IN_REPARENT) != FALSE)
|
||||
#define CLUTTER_ACTOR_IN_PAINT(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_IN_PAINT) != FALSE)
|
||||
#define CLUTTER_ACTOR_IN_RELAYOUT(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_IN_RELAYOUT) != FALSE)
|
||||
#define CLUTTER_STAGE_IN_RESIZE(a) ((CLUTTER_PRIVATE_FLAGS (a) & CLUTTER_IN_RESIZE) != FALSE)
|
||||
|
||||
typedef enum {
|
||||
CLUTTER_ACTOR_UNUSED_FLAG = 0,
|
||||
|
||||
CLUTTER_IN_DESTRUCTION = 1 << 0,
|
||||
CLUTTER_IS_TOPLEVEL = 1 << 1,
|
||||
CLUTTER_IN_REPARENT = 1 << 2,
|
||||
|
||||
/* Used by the stage to indicate GL viewport / perspective etc needs
|
||||
* (re)setting.
|
||||
*/
|
||||
CLUTTER_ACTOR_SYNC_MATRICES = 1 << 3,
|
||||
CLUTTER_SYNC_MATRICES = 1 << 3,
|
||||
|
||||
/* Used to avoid recursion */
|
||||
CLUTTER_ACTOR_IN_PAINT = 1 << 4,
|
||||
CLUTTER_IN_PAINT = 1 << 4,
|
||||
|
||||
/* Used to avoid recursion */
|
||||
CLUTTER_ACTOR_IN_RELAYOUT = 1 << 5,
|
||||
CLUTTER_IN_RELAYOUT = 1 << 5,
|
||||
|
||||
/* Used by the stage if resizing is an asynchronous operation (like on
|
||||
* X11) to delay queueing relayouts until we got a notification from the
|
||||
* event handling
|
||||
*/
|
||||
CLUTTER_STAGE_IN_RESIZE = 1 << 6,
|
||||
CLUTTER_IN_RESIZE = 1 << 6,
|
||||
|
||||
/* a flag for internal children of Containers */
|
||||
CLUTTER_ACTOR_INTERNAL_CHILD = 1 << 7
|
||||
CLUTTER_INTERNAL_CHILD = 1 << 7
|
||||
} ClutterPrivateFlags;
|
||||
|
||||
struct _ClutterInputDevice
|
||||
@ -184,10 +196,6 @@ gboolean _clutter_context_is_initialized (void);
|
||||
PangoContext *_clutter_context_create_pango_context (ClutterMainContext *self);
|
||||
PangoContext *_clutter_context_get_pango_context (ClutterMainContext *self);
|
||||
|
||||
#define CLUTTER_PRIVATE_FLAGS(a) (((ClutterActor *) (a))->private_flags)
|
||||
#define CLUTTER_SET_PRIVATE_FLAGS(a,f) (CLUTTER_PRIVATE_FLAGS (a) |= (f))
|
||||
#define CLUTTER_UNSET_PRIVATE_FLAGS(a,f) (CLUTTER_PRIVATE_FLAGS (a) &= ~(f))
|
||||
|
||||
#define CLUTTER_PARAM_READABLE \
|
||||
G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB
|
||||
#define CLUTTER_PARAM_WRITABLE \
|
||||
|
@ -376,7 +376,7 @@ clutter_stage_realize (ClutterActor *self)
|
||||
* first paint (which will likely occur before the ConfigureNotify
|
||||
* is received)
|
||||
*/
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_SYNC_MATRICES);
|
||||
|
||||
g_assert (priv->impl != NULL);
|
||||
is_realized = _clutter_stage_window_realize (priv->impl);
|
||||
@ -771,12 +771,8 @@ gboolean
|
||||
_clutter_stage_has_full_redraw_queued (ClutterStage *stage)
|
||||
{
|
||||
ClutterStageWindow *stage_window = _clutter_stage_get_window (stage);
|
||||
gboolean in_destruction;
|
||||
|
||||
in_destruction =
|
||||
((CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION) != FALSE);
|
||||
|
||||
if (in_destruction || stage_window == NULL)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (stage) || stage_window == NULL)
|
||||
return FALSE;
|
||||
|
||||
if (stage->priv->redraw_pending &&
|
||||
@ -1319,7 +1315,7 @@ clutter_stage_init (ClutterStage *self)
|
||||
ClutterBackend *backend;
|
||||
|
||||
/* a stage is a top-level object */
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_IS_TOPLEVEL);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_IS_TOPLEVEL);
|
||||
|
||||
self->priv = priv = CLUTTER_STAGE_GET_PRIVATE (self);
|
||||
|
||||
@ -1472,7 +1468,7 @@ clutter_stage_set_perspective (ClutterStage *stage,
|
||||
/* this will cause the viewport to be reset; see
|
||||
* clutter_maybe_setup_viewport() inside clutter-main.c
|
||||
*/
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2284,7 +2280,7 @@ clutter_stage_ensure_viewport (ClutterStage *stage)
|
||||
{
|
||||
g_return_if_fail (CLUTTER_IS_STAGE (stage));
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_SYNC_MATRICES);
|
||||
|
||||
clutter_actor_queue_redraw (CLUTTER_ACTOR (stage));
|
||||
}
|
||||
@ -2583,7 +2579,7 @@ _clutter_stage_get_pending_swaps (ClutterStage *stage)
|
||||
{
|
||||
ClutterStageWindow *stage_window;
|
||||
|
||||
if (CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION)
|
||||
if (CLUTTER_ACTOR_IN_DESTRUCTION (stage))
|
||||
return 0;
|
||||
|
||||
stage_window = _clutter_stage_get_window (stage);
|
||||
|
@ -398,7 +398,7 @@ clutter_backend_egl_ensure_context (ClutterBackend *backend,
|
||||
ClutterStageWindow *impl;
|
||||
|
||||
if (stage == NULL ||
|
||||
(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION) ||
|
||||
CLUTTER_ACTOR_IN_DESTRUCTION (stage) ||
|
||||
((impl = _clutter_stage_get_window (stage)) == NULL))
|
||||
{
|
||||
CLUTTER_NOTE (BACKEND, "Clearing EGL context");
|
||||
|
@ -665,7 +665,7 @@ clutter_backend_glx_ensure_context (ClutterBackend *backend,
|
||||
* implementation attached to it then we clear the GL context
|
||||
*/
|
||||
if (stage == NULL ||
|
||||
(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION) ||
|
||||
CLUTTER_ACTOR_IN_DESTRUCTION (stage) ||
|
||||
((impl = _clutter_stage_get_window (stage)) == NULL))
|
||||
{
|
||||
ClutterBackendX11 *backend_x11;
|
||||
|
@ -157,7 +157,7 @@ clutter_stage_osx_state_update (ClutterStageOSX *self,
|
||||
clutter_actor_set_size (CLUTTER_ACTOR (self->stage_osx->wrapper),
|
||||
(int)aSize.width, (int)aSize.height);
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS(self->stage_osx->wrapper, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self->stage_osx->wrapper, CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
|
||||
/* Simply forward all events that reach our view to clutter. */
|
||||
@ -407,7 +407,7 @@ clutter_stage_osx_resize (ClutterStageWindow *stage_window,
|
||||
CLUTTER_OSX_POOL_RELEASE ();
|
||||
|
||||
/* make sure that the viewport is updated */
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self->wrapper, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (self->wrapper, CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
@ -499,8 +499,6 @@ clutter_stage_osx_init (ClutterStageOSX *self)
|
||||
{
|
||||
self->requisition_width = 640;
|
||||
self->requisition_height = 480;
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS(self, CLUTTER_ACTOR_IS_TOPLEVEL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -426,7 +426,7 @@ clutter_backend_win32_ensure_context (ClutterBackend *backend,
|
||||
ClutterStageWindow *impl;
|
||||
|
||||
if (stage == NULL ||
|
||||
(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION) ||
|
||||
!CLUTTER_ACTOR_IN_DESTRUCTION (stage) ||
|
||||
((impl = _clutter_stage_get_window (stage)) == NULL))
|
||||
{
|
||||
CLUTTER_NOTE (MULTISTAGE, "Clearing all context");
|
||||
|
@ -192,7 +192,7 @@ clutter_stage_win32_resize (ClutterStageWindow *stage_window,
|
||||
}
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage_win32->wrapper,
|
||||
CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
}
|
||||
|
||||
@ -349,7 +349,7 @@ clutter_stage_win32_set_fullscreen (ClutterStageWindow *stage_window,
|
||||
}
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage_win32->wrapper,
|
||||
CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SYNC_MATRICES);
|
||||
}
|
||||
|
||||
/* Report the state change */
|
||||
@ -553,8 +553,6 @@ clutter_stage_win32_init (ClutterStageWin32 *stage)
|
||||
stage->wtitle = NULL;
|
||||
stage->is_cursor_visible = TRUE;
|
||||
stage->wrapper = NULL;
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_IS_TOPLEVEL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -582,7 +582,7 @@ event_translate (ClutterBackend *backend,
|
||||
xevent->xconfigure.height);
|
||||
|
||||
CLUTTER_UNSET_PRIVATE_FLAGS (stage_x11->wrapper,
|
||||
CLUTTER_STAGE_IN_RESIZE);
|
||||
CLUTTER_IN_RESIZE);
|
||||
|
||||
/* the resize process is complete, so we can ask the stage
|
||||
* to set up the GL viewport with the new size
|
||||
|
@ -275,7 +275,7 @@ clutter_stage_x11_resize (ClutterStageWindow *stage_window,
|
||||
height);
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage_x11->wrapper,
|
||||
CLUTTER_STAGE_IN_RESIZE);
|
||||
CLUTTER_IN_RESIZE);
|
||||
|
||||
XResizeWindow (backend_x11->xdpy,
|
||||
stage_x11->xwin,
|
||||
@ -436,7 +436,7 @@ clutter_stage_x11_set_fullscreen (ClutterStageWindow *stage_window,
|
||||
|
||||
CLUTTER_NOTE (BACKEND, "%ssetting fullscreen", is_fullscreen ? "" : "un");
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_SYNC_MATRICES);
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_SYNC_MATRICES);
|
||||
|
||||
if (is_fullscreen)
|
||||
{
|
||||
@ -711,8 +711,6 @@ clutter_stage_x11_init (ClutterStageX11 *stage)
|
||||
stage->title = NULL;
|
||||
|
||||
stage->wrapper = NULL;
|
||||
|
||||
CLUTTER_SET_PRIVATE_FLAGS (stage, CLUTTER_ACTOR_IS_TOPLEVEL);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -890,7 +888,7 @@ clutter_x11_set_stage_foreign (ClutterStage *stage,
|
||||
backend_x11 = CLUTTER_BACKEND_X11 (backend);
|
||||
|
||||
g_return_val_if_fail (CLUTTER_IS_STAGE (stage), FALSE);
|
||||
g_return_val_if_fail (!(CLUTTER_PRIVATE_FLAGS (stage) & CLUTTER_ACTOR_IN_DESTRUCTION), FALSE);
|
||||
g_return_val_if_fail (!CLUTTER_ACTOR_IN_DESTRUCTION (stage), FALSE);
|
||||
g_return_val_if_fail (xwindow != None, FALSE);
|
||||
|
||||
actor = CLUTTER_ACTOR (stage);
|
||||
|
Loading…
Reference in New Issue
Block a user