clutter/effect: Move ClutterEffect creation to ClutterActor

As so paint node creation is centralized in a single function.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1355>
This commit is contained in:
Georges Basile Stavracas Neto 2020-07-05 19:17:09 -03:00
parent 46c68f368f
commit 431bde921c
3 changed files with 11 additions and 8 deletions

View File

@ -3895,6 +3895,7 @@ clutter_actor_continue_paint (ClutterActor *self,
}
else
{
g_autoptr (ClutterPaintNode) effect_node = NULL;
ClutterEffect *old_current_effect;
ClutterEffectPaintFlags run_flags = 0;
@ -3923,7 +3924,14 @@ clutter_actor_continue_paint (ClutterActor *self,
run_flags & CLUTTER_EFFECT_PAINT_ACTOR_DIRTY)
run_flags |= CLUTTER_EFFECT_PAINT_BYPASS_EFFECT;
_clutter_effect_paint (priv->current_effect, paint_context, run_flags);
effect_node = clutter_effect_node_new (priv->current_effect);
_clutter_effect_paint (priv->current_effect,
effect_node,
paint_context,
run_flags);
clutter_paint_node_paint (effect_node, paint_context);
priv->current_effect = old_current_effect;
}

View File

@ -9,6 +9,7 @@ gboolean _clutter_effect_modify_paint_volume (ClutterEffect
ClutterPaintVolume *volume);
gboolean _clutter_effect_has_custom_paint_volume (ClutterEffect *effect);
void _clutter_effect_paint (ClutterEffect *effect,
ClutterPaintNode *node,
ClutterPaintContext *paint_context,
ClutterEffectPaintFlags flags);
void _clutter_effect_pick (ClutterEffect *effect,

View File

@ -285,22 +285,16 @@ clutter_effect_init (ClutterEffect *self)
void
_clutter_effect_paint (ClutterEffect *effect,
ClutterPaintNode *node,
ClutterPaintContext *paint_context,
ClutterEffectPaintFlags flags)
{
ClutterPaintNode *node;
g_return_if_fail (CLUTTER_IS_EFFECT (effect));
node = clutter_effect_node_new (effect);
CLUTTER_EFFECT_GET_CLASS (effect)->paint (effect,
node,
paint_context,
flags);
clutter_paint_node_paint (node, paint_context);
clutter_paint_node_unref (node);
}
void