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-10-06 15:34:47 +0000 |
commit | 1d13c52db84c0c83ea18e3c670cfc6c3793b4d98 (patch) | |
tree | 189e4f893139866c412136f6c676a67f15453406 | |
parent | 2e986ed3e8c1bd266b0242bd90af9e343851f774 (diff) | |
download | mutter-1d13c52db84c0c83ea18e3c670cfc6c3793b4d98.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); } |