diff options
author | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2020-09-11 10:29:46 -0300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2020-09-25 11:19:51 -0300 |
commit | 5b9a3e53e5ebde8979339e6a92c3c489cb74ceec (patch) | |
tree | b3536af82db97bf27afee1d16d23aa75727f3984 | |
parent | a854ab17a7e77a489f33da8588106d93f95ec40f (diff) | |
download | mutter-5b9a3e53e5ebde8979339e6a92c3c489cb74ceec.tar.gz |
clutter/actor: Split building the transform into a separate function
It'll be used independently by the next commit to ensure ClutterStage
has a valid transform set.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1439
-rw-r--r-- | clutter/clutter/clutter-actor.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index 3559b4d64..12a9fbf39 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -3145,20 +3145,28 @@ roll_back_pivot: /* Applies the transforms associated with this actor to the given * matrix. */ -void -_clutter_actor_apply_modelview_transform (ClutterActor *self, - CoglMatrix *matrix) +static void +ensure_valid_actor_transform (ClutterActor *actor) { - ClutterActorPrivate *priv = self->priv; + ClutterActorPrivate *priv = actor->priv; if (priv->transform_valid) - goto out; + return; - CLUTTER_ACTOR_GET_CLASS (self)->apply_transform (self, &priv->transform); + CLUTTER_ACTOR_GET_CLASS (actor)->apply_transform (actor, &priv->transform); + priv->has_inverse_transform = + cogl_matrix_get_inverse (&priv->transform, &priv->inverse_transform); priv->transform_valid = TRUE; +} -out: +void +_clutter_actor_apply_modelview_transform (ClutterActor *self, + CoglMatrix *matrix) +{ + ClutterActorPrivate *priv = self->priv; + + ensure_valid_actor_transform (self); cogl_matrix_multiply (matrix, matrix, &priv->transform); } |