[mutter/gbsneto/graphene: 15/18] Replace ClutterPoint by graphene_point_t



commit 160cc9182d432d849d3fbbdaec25ba7ff74640f2
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Feb 20 11:53:44 2019 -0300

    Replace ClutterPoint by graphene_point_t
    
    Remove the tests for ClutterPoint since it's
    corresponding code moved to private ClutterStage
    methods.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/458

 clutter/clutter/clutter-actor-private.h            |   4 +-
 clutter/clutter/clutter-actor.c                    |  48 ++--
 clutter/clutter/clutter-autocleanups.h             |   1 -
 clutter/clutter/clutter-base-types.c               | 262 +--------------------
 clutter/clutter/clutter-event.c                    |  38 +--
 clutter/clutter/clutter-event.h                    |   2 +-
 clutter/clutter/clutter-graphene.c                 |  19 ++
 clutter/clutter/clutter-input-device.c             |   4 +-
 clutter/clutter/clutter-input-device.h             |   2 +-
 clutter/clutter/clutter-script-parser.c            |  22 +-
 clutter/clutter/clutter-script-private.h           |   6 +-
 clutter/clutter/clutter-scroll-actor.c             |  24 +-
 clutter/clutter/clutter-scroll-actor.h             |   4 +-
 clutter/clutter/clutter-stage-private.h            |  10 +-
 clutter/clutter/clutter-stage.c                    |  89 +++++--
 clutter/clutter/clutter-timeline.c                 |  20 +-
 clutter/clutter/clutter-timeline.h                 |  12 +-
 clutter/clutter/clutter-types.h                    |  75 +-----
 clutter/clutter/clutter-zoom-action.c              |  18 +-
 clutter/clutter/clutter-zoom-action.h              |   6 +-
 src/backends/meta-backend.c                        |   2 +-
 src/backends/meta-cursor-renderer.c                |   4 +-
 src/backends/meta-cursor-renderer.h                |   2 +-
 src/backends/meta-cursor-tracker.c                 |   2 +-
 src/backends/meta-screen-cast-monitor-stream-src.c |   4 +-
 src/backends/meta-screen-cast-window-stream-src.c  |  10 +-
 src/backends/meta-screen-cast-window.c             |   4 +-
 src/backends/meta-screen-cast-window.h             |   8 +-
 src/backends/native/meta-backend-native.c          |   2 +-
 src/backends/native/meta-barrier-native.c          |   2 +-
 src/backends/native/meta-device-manager-native.c   |   4 +-
 src/backends/native/meta-seat-native.c             |   2 +-
 src/backends/native/meta-seat-native.h             |   2 +-
 src/compositor/meta-dnd-actor.c                    |   2 +-
 src/compositor/meta-feedback-actor.c               |   2 +-
 src/compositor/meta-window-actor.c                 |   4 +-
 src/tests/clutter-test-utils.c                     |  18 +-
 src/tests/clutter-test-utils.h                     |  20 +-
 src/tests/clutter/conform/actor-layout.c           |  16 +-
 src/tests/clutter/conform/meson.build              |   1 -
 src/tests/clutter/conform/point.c                  |  84 -------
 src/tests/clutter/interactive/test-events.c        |   2 +-
 src/wayland/meta-pointer-confinement-wayland.c     |   2 +-
 src/wayland/meta-wayland-cursor-surface.c          |   2 +-
 src/wayland/meta-wayland-data-device.c             |   2 +-
 src/wayland/meta-wayland-dnd-surface.c             |   2 +-
 src/wayland/meta-wayland-pointer.c                 |   4 +-
 src/wayland/meta-xwayland-dnd.c                    |   6 +-
 48 files changed, 275 insertions(+), 606 deletions(-)
---
diff --git a/clutter/clutter/clutter-actor-private.h b/clutter/clutter/clutter-actor-private.h
index d00bdd5d7..d8952b6b1 100644
--- a/clutter/clutter/clutter-actor-private.h
+++ b/clutter/clutter/clutter-actor-private.h
@@ -163,7 +163,7 @@ struct _SizeRequest
 struct _ClutterLayoutInfo
 {
   /* fixed position coordinates */
-  ClutterPoint fixed_pos;
+  graphene_point_t fixed_pos;
 
   ClutterMargin margin;
 
@@ -209,7 +209,7 @@ struct _ClutterTransformInfo
   gfloat z_position;
 
   /* transformation center */
-  ClutterPoint pivot;
+  graphene_point_t pivot;
   gfloat pivot_z;
 
   CoglMatrix transform;
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index c3c531289..89e0e0076 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -1288,7 +1288,7 @@ static gboolean
 _clutter_actor_transform_local_box_to_stage (ClutterActor          *self,
                                              ClutterStage          *stage,
                                              const ClutterActorBox *box,
-                                             ClutterPoint           vertices[4])
+                                             graphene_point_t       vertices[4])
 {
   CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
   CoglMatrix stage_transform, inv_stage_transform;
@@ -1344,7 +1344,7 @@ clutter_actor_pick_box (ClutterActor          *self,
                         const ClutterActorBox *box)
 {
   ClutterStage *stage;
-  ClutterPoint vertices[4];
+  graphene_point_t vertices[4];
 
   g_return_if_fail (CLUTTER_IS_ACTOR (self));
   g_return_if_fail (box != NULL);
@@ -1363,7 +1363,7 @@ _clutter_actor_push_pick_clip (ClutterActor          *self,
                                const ClutterActorBox *clip)
 {
   ClutterStage *stage;
-  ClutterPoint vertices[4];
+  graphene_point_t vertices[4];
 
   stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
 
@@ -4477,7 +4477,7 @@ static const ClutterTransformInfo default_transform_info = {
 
   0.f,                          /* z-position */
 
-  CLUTTER_POINT_INIT_ZERO,      /* pivot */
+  GRAPHENE_POINT_INIT_ZERO,     /* pivot */
   0.f,                          /* pivot-z */
 
   CLUTTER_MATRIX_INIT_IDENTITY,
@@ -4556,8 +4556,8 @@ _clutter_actor_get_transform_info (ClutterActor *self)
 }
 
 static inline void
-clutter_actor_set_pivot_point_internal (ClutterActor       *self,
-                                        const ClutterPoint *pivot)
+clutter_actor_set_pivot_point_internal (ClutterActor           *self,
+                                        const graphene_point_t *pivot)
 {
   ClutterTransformInfo *info;
 
@@ -5134,7 +5134,7 @@ clutter_actor_set_property (GObject      *object,
 
     case PROP_POSITION:
       {
-        const ClutterPoint *pos = g_value_get_boxed (value);
+        const graphene_point_t *pos = g_value_get_boxed (value);
 
         if (pos != NULL)
           clutter_actor_set_position (actor, pos->x, pos->y);
@@ -5239,10 +5239,10 @@ clutter_actor_set_property (GObject      *object,
 
     case PROP_PIVOT_POINT:
       {
-        const ClutterPoint *pivot = g_value_get_boxed (value);
+        const graphene_point_t *pivot = g_value_get_boxed (value);
 
         if (pivot == NULL)
-          pivot = clutter_point_zero ();
+          pivot = graphene_point_zero ();
 
         clutter_actor_set_pivot_point (actor, pivot->x, pivot->y);
       }
@@ -5488,11 +5488,11 @@ clutter_actor_get_property (GObject    *object,
 
     case PROP_POSITION:
       {
-        ClutterPoint position;
+        graphene_point_t position;
 
-        clutter_point_init (&position,
-                            clutter_actor_get_x (actor),
-                            clutter_actor_get_y (actor));
+        graphene_point_init (&position,
+                             clutter_actor_get_x (actor),
+                             clutter_actor_get_y (actor));
         g_value_set_boxed (value, &position);
       }
       break;
@@ -6500,7 +6500,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
     g_param_spec_boxed ("position",
                         P_("Position"),
                         P_("The position of the origin of the actor"),
-                        CLUTTER_TYPE_POINT,
+                        GRAPHENE_TYPE_POINT,
                         G_PARAM_READWRITE |
                         G_PARAM_STATIC_STRINGS |
                         CLUTTER_PARAM_ANIMATABLE);
@@ -7055,7 +7055,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
     g_param_spec_boxed ("pivot-point",
                         P_("Pivot Point"),
                         P_("The point around which the scaling and rotation occur"),
-                        CLUTTER_TYPE_POINT,
+                        GRAPHENE_TYPE_POINT,
                         G_PARAM_READWRITE |
                         G_PARAM_STATIC_STRINGS |
                         CLUTTER_PARAM_ANIMATABLE);
@@ -10399,17 +10399,17 @@ clutter_actor_set_position (ClutterActor *self,
                            gfloat        x,
                            gfloat        y)
 {
-  ClutterPoint new_position;
-  ClutterPoint cur_position;
+  graphene_point_t new_position;
+  graphene_point_t cur_position;
 
   g_return_if_fail (CLUTTER_IS_ACTOR (self));
 
-  clutter_point_init (&new_position, x, y);
+  graphene_point_init (&new_position, x, y);
 
   cur_position.x = clutter_actor_get_x (self);
   cur_position.y = clutter_actor_get_y (self);
 
-  if (!clutter_point_equals (&cur_position, &new_position))
+  if (!graphene_point_equal (&cur_position, &new_position))
     _clutter_actor_create_transition (self, obj_props[PROP_POSITION],
                                       &cur_position,
                                       &new_position);
@@ -11363,8 +11363,8 @@ clutter_actor_set_y_internal (ClutterActor *self,
 }
 
 static void
-clutter_actor_set_position_internal (ClutterActor       *self,
-                                     const ClutterPoint *position)
+clutter_actor_set_position_internal (ClutterActor           *self,
+                                     const graphene_point_t *position)
 {
   ClutterActorPrivate *priv = self->priv;
   ClutterLayoutInfo *linfo;
@@ -11373,7 +11373,7 @@ clutter_actor_set_position_internal (ClutterActor       *self,
   linfo = _clutter_actor_get_layout_info (self);
 
   if (priv->position_set &&
-      clutter_point_equals (position, &linfo->fixed_pos))
+      graphene_point_equal (position, &linfo->fixed_pos))
     return;
 
   clutter_actor_store_old_geometry (self, &old);
@@ -12192,7 +12192,7 @@ clutter_actor_set_pivot_point (ClutterActor *self,
                                gfloat        pivot_x,
                                gfloat        pivot_y)
 {
-  ClutterPoint pivot = CLUTTER_POINT_INIT (pivot_x, pivot_y);
+  graphene_point_t pivot = GRAPHENE_POINT_INIT (pivot_x, pivot_y);
   const ClutterTransformInfo *info;
 
   g_return_if_fail (CLUTTER_IS_ACTOR (self));
@@ -18377,7 +18377,7 @@ clutter_actor_get_layout_manager (ClutterActor *self)
 }
 
 static const ClutterLayoutInfo default_layout_info = {
-  CLUTTER_POINT_INIT_ZERO,      /* fixed-pos */
+  GRAPHENE_POINT_INIT_ZERO,     /* fixed-pos */
   { 0, 0, 0, 0 },               /* margin */
   CLUTTER_ACTOR_ALIGN_FILL,     /* x-align */
   CLUTTER_ACTOR_ALIGN_FILL,     /* y-align */
diff --git a/clutter/clutter/clutter-autocleanups.h b/clutter/clutter/clutter-autocleanups.h
index 8897a0165..db0b5b2a2 100644
--- a/clutter/clutter/clutter-autocleanups.h
+++ b/clutter/clutter/clutter-autocleanups.h
@@ -93,7 +93,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterMatrix, clutter_matrix_free)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterPaintNode, clutter_paint_node_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterPaintVolume, clutter_paint_volume_free)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterPathNode, clutter_path_node_free)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterPoint, clutter_point_free)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterRect, clutter_rect_free)
 
 #endif /* __GI_SCANNER__ */
diff --git a/clutter/clutter/clutter-base-types.c b/clutter/clutter/clutter-base-types.c
index c212d345e..b4d660087 100644
--- a/clutter/clutter/clutter-base-types.c
+++ b/clutter/clutter/clutter-base-types.c
@@ -212,256 +212,6 @@ G_DEFINE_BOXED_TYPE (ClutterMargin, clutter_margin,
 
 
 
-/*
- * ClutterPoint
- */
-
-static const ClutterPoint _clutter_point_zero = CLUTTER_POINT_INIT_ZERO;
-
-/**
- * clutter_point_zero:
- *
- * A point centered at (0, 0).
- *
- * The returned value can be used as a guard.
- *
- * Return value: a point centered in (0, 0); the returned #ClutterPoint
- *   is owned by Clutter and it should not be modified or freed.
- *
- * Since: 1.12
- */
-const ClutterPoint *
-clutter_point_zero (void)
-{
-  return &_clutter_point_zero;
-}
-
-/**
- * clutter_point_alloc: (constructor)
- *
- * Allocates a new #ClutterPoint.
- *
- * Return value: (transfer full): the newly allocated #ClutterPoint.
- *   Use clutter_point_free() to free its resources.
- *
- * Since: 1.12
- */
-ClutterPoint *
-clutter_point_alloc (void)
-{
-  return g_slice_new0 (ClutterPoint);
-}
-
-/**
- * clutter_point_init:
- * @point: a #ClutterPoint
- * @x: the X coordinate of the point
- * @y: the Y coordinate of the point
- *
- * Initializes @point with the given coordinates.
- *
- * Return value: (transfer none): the initialized #ClutterPoint
- *
- * Since: 1.12
- */
-ClutterPoint *
-clutter_point_init (ClutterPoint *point,
-                    float         x,
-                    float         y)
-{
-  g_return_val_if_fail (point != NULL, NULL);
-
-  point->x = x;
-  point->y = y;
-
-  return point;
-}
-
-/**
- * clutter_point_copy:
- * @point: a #ClutterPoint
- *
- * Creates a new #ClutterPoint with the same coordinates of @point.
- *
- * Return value: (transfer full): a newly allocated #ClutterPoint.
- *   Use clutter_point_free() to free its resources.
- *
- * Since: 1.12
- */
-ClutterPoint *
-clutter_point_copy (const ClutterPoint *point)
-{
-  return g_slice_dup (ClutterPoint, point);
-}
-
-/**
- * clutter_point_free:
- * @point: a #ClutterPoint
- *
- * Frees the resources allocated for @point.
- *
- * Since: 1.12
- */
-void
-clutter_point_free (ClutterPoint *point)
-{
-  if (point != NULL && point != &_clutter_point_zero)
-    g_slice_free (ClutterPoint, point);
-}
-
-/**
- * clutter_point_equals:
- * @a: the first #ClutterPoint to compare
- * @b: the second #ClutterPoint to compare
- *
- * Compares two #ClutterPoint for equality.
- *
- * Return value: %TRUE if the #ClutterPoints are equal
- *
- * Since: 1.12
- */
-gboolean
-clutter_point_equals (const ClutterPoint *a,
-                      const ClutterPoint *b)
-{
-  if (a == b)
-    return TRUE;
-
-  if (a == NULL || b == NULL)
-    return FALSE;
-
-  return fabsf (a->x - b->x) < FLOAT_EPSILON &&
-         fabsf (a->y - b->y) < FLOAT_EPSILON;
-}
-
-/**
- * clutter_point_distance:
- * @a: a #ClutterPoint
- * @b: a #ClutterPoint
- * @x_distance: (out) (allow-none): return location for the horizontal
- *   distance between the points
- * @y_distance: (out) (allow-none): return location for the vertical
- *   distance between the points
- *
- * Computes the distance between two #ClutterPoint.
- *
- * Return value: the distance between the points.
- *
- * Since: 1.12
- */
-float
-clutter_point_distance (const ClutterPoint *a,
-                        const ClutterPoint *b,
-                        float              *x_distance,
-                        float              *y_distance)
-{
-  float x_d, y_d;
-
-  g_return_val_if_fail (a != NULL, 0.f);
-  g_return_val_if_fail (b != NULL, 0.f);
-
-  if (clutter_point_equals (a, b))
-    return 0.f;
-
-  x_d = (a->x - b->x);
-  y_d = (a->y - b->y);
-
-  if (x_distance != NULL)
-    *x_distance = fabsf (x_d);
-
-  if (y_distance != NULL)
-    *y_distance = fabsf (y_d);
-
-  return sqrt ((x_d * x_d) + (y_d * y_d));
-}
-
-static gboolean
-clutter_point_progress (const GValue *a,
-                        const GValue *b,
-                        gdouble       progress,
-                        GValue       *retval)
-{
-  const ClutterPoint *ap = g_value_get_boxed (a);
-  const ClutterPoint *bp = g_value_get_boxed (b);
-  ClutterPoint res = CLUTTER_POINT_INIT (0, 0);
-
-  res.x = ap->x + (bp->x - ap->x) * progress;
-  res.y = ap->y + (bp->y - ap->y) * progress;
-
-  g_value_set_boxed (retval, &res);
-
-  return TRUE;
-}
-
-G_DEFINE_BOXED_TYPE_WITH_CODE (ClutterPoint, clutter_point,
-                               clutter_point_copy,
-                               clutter_point_free,
-                               CLUTTER_REGISTER_INTERVAL_PROGRESS (clutter_point_progress))
-
-static int
-clutter_point_compare_line (const ClutterPoint *p,
-                            const ClutterPoint *a,
-                            const ClutterPoint *b)
-{
-  float x1 = b->x - a->x;
-  float y1 = b->y - a->y;
-  float x2 = p->x - a->x;
-  float y2 = p->y - a->y;
-  float cross_z = x1 * y2 - y1 * x2;
-
-  if (cross_z > 0.f)
-    return 1;
-  else if (cross_z < 0.f)
-    return -1;
-  else
-    return 0;
-}
-
-/**
- * clutter_point_inside_quadrilateral:
- * @point: a #ClutterPoint to test
- * @vertices: array of vertices of the quadrilateral, in either clockwise or
- *            anticlockwise order.
- *
- * Determines whether a point is inside the convex quadrilateral provided,
- * or on any of its edges or vertices.
- *
- * Returns: %TRUE if @point is inside or touching the quadrilateral
- */
-gboolean
-clutter_point_inside_quadrilateral (const ClutterPoint *point,
-                                    const ClutterPoint *vertices)
-{
-  unsigned int i;
-  int first_side;
-
-  first_side = 0;
-
-  for (i = 0; i < 4; i++)
-    {
-      int side;
-
-      side = clutter_point_compare_line (point,
-                                         &vertices[i],
-                                         &vertices[(i + 1) % 4]);
-
-      if (side)
-        {
-          if (first_side == 0)
-            first_side = side;
-          else if (side != first_side)
-            return FALSE;
-        }
-    }
-
-  if (first_side == 0)
-    return FALSE;
-
-  return TRUE;
-}
-
-
-
 /*
  * ClutterRect
  */
@@ -645,7 +395,7 @@ clutter_rect_equals (ClutterRect *a,
   clutter_rect_normalize_internal (a);
   clutter_rect_normalize_internal (b);
 
-  return clutter_point_equals (&a->origin, &b->origin) &&
+  return graphene_point_equal (&a->origin, &b->origin) &&
          graphene_size_equal (&a->size, &b->size);
 }
 
@@ -678,7 +428,7 @@ clutter_rect_normalize (ClutterRect *rect)
 /**
  * clutter_rect_get_center:
  * @rect: a #ClutterRect
- * @center: (out caller-allocates): a #ClutterPoint
+ * @center: (out caller-allocates): a #graphene_point_t
  *
  * Retrieves the center of @rect, after normalizing the rectangle,
  * and updates @center with the correct coordinates.
@@ -686,8 +436,8 @@ clutter_rect_normalize (ClutterRect *rect)
  * Since: 1.12
  */
 void
-clutter_rect_get_center (ClutterRect  *rect,
-                         ClutterPoint *center)
+clutter_rect_get_center (ClutterRect      *rect,
+                         graphene_point_t *center)
 {
   g_return_if_fail (rect != NULL);
   g_return_if_fail (center != NULL);
@@ -711,8 +461,8 @@ clutter_rect_get_center (ClutterRect  *rect,
  * Since: 1.12
  */
 gboolean
-clutter_rect_contains_point (ClutterRect  *rect,
-                             ClutterPoint *point)
+clutter_rect_contains_point (ClutterRect      *rect,
+                             graphene_point_t *point)
 {
   g_return_val_if_fail (rect != NULL, FALSE);
   g_return_val_if_fail (point != NULL, FALSE);
diff --git a/clutter/clutter/clutter-event.c b/clutter/clutter/clutter-event.c
index 8ccf0e8da..975ba5707 100644
--- a/clutter/clutter/clutter-event.c
+++ b/clutter/clutter/clutter-event.c
@@ -370,7 +370,7 @@ clutter_event_get_coords (const ClutterEvent *event,
                           gfloat             *x,
                           gfloat             *y)
 {
-  ClutterPoint coords;
+  graphene_point_t coords;
 
   g_return_if_fail (event != NULL);
 
@@ -386,15 +386,15 @@ clutter_event_get_coords (const ClutterEvent *event,
 /**
  * clutter_event_get_position:
  * @event: a #ClutterEvent
- * @position: a #ClutterPoint
+ * @position: a #graphene_point_t
  *
- * Retrieves the event coordinates as a #ClutterPoint.
+ * Retrieves the event coordinates as a #graphene_point_t.
  *
  * Since: 1.12
  */
 void
 clutter_event_get_position (const ClutterEvent *event,
-                            ClutterPoint       *position)
+                            graphene_point_t   *position)
 {
   g_return_if_fail (event != NULL);
   g_return_if_fail (position != NULL);
@@ -415,42 +415,42 @@ clutter_event_get_position (const ClutterEvent *event,
     case CLUTTER_PAD_BUTTON_RELEASE:
     case CLUTTER_PAD_STRIP:
     case CLUTTER_PAD_RING:
-      clutter_point_init (position, 0.f, 0.f);
+      graphene_point_init (position, 0.f, 0.f);
       break;
 
     case CLUTTER_ENTER:
     case CLUTTER_LEAVE:
-      clutter_point_init (position, event->crossing.x, event->crossing.y);
+      graphene_point_init (position, event->crossing.x, event->crossing.y);
       break;
 
     case CLUTTER_BUTTON_PRESS:
     case CLUTTER_BUTTON_RELEASE:
-      clutter_point_init (position, event->button.x, event->button.y);
+      graphene_point_init (position, event->button.x, event->button.y);
       break;
 
     case CLUTTER_MOTION:
-      clutter_point_init (position, event->motion.x, event->motion.y);
+      graphene_point_init (position, event->motion.x, event->motion.y);
       break;
 
     case CLUTTER_TOUCH_BEGIN:
     case CLUTTER_TOUCH_UPDATE:
     case CLUTTER_TOUCH_END:
     case CLUTTER_TOUCH_CANCEL:
-      clutter_point_init (position, event->touch.x, event->touch.y);
+      graphene_point_init (position, event->touch.x, event->touch.y);
       break;
 
     case CLUTTER_SCROLL:
-      clutter_point_init (position, event->scroll.x, event->scroll.y);
+      graphene_point_init (position, event->scroll.x, event->scroll.y);
       break;
 
     case CLUTTER_TOUCHPAD_PINCH:
-      clutter_point_init (position, event->touchpad_pinch.x,
-                          event->touchpad_pinch.y);
+      graphene_point_init (position, event->touchpad_pinch.x,
+                           event->touchpad_pinch.y);
       break;
 
     case CLUTTER_TOUCHPAD_SWIPE:
-      clutter_point_init (position, event->touchpad_swipe.x,
-                          event->touchpad_swipe.y);
+      graphene_point_init (position, event->touchpad_swipe.x,
+                           event->touchpad_swipe.y);
       break;
     }
 
@@ -1796,12 +1796,12 @@ float
 clutter_event_get_distance (const ClutterEvent *source,
                             const ClutterEvent *target)
 {
-  ClutterPoint p0, p1;
+  graphene_point_t p0, p1;
 
   clutter_event_get_position (source, &p0);
   clutter_event_get_position (source, &p1);
 
-  return clutter_point_distance (&p0, &p1, NULL, NULL);
+  return graphene_point_distance (&p0, &p1, NULL, NULL);
 }
 
 /**
@@ -1822,17 +1822,17 @@ double
 clutter_event_get_angle (const ClutterEvent *source,
                          const ClutterEvent *target)
 {
-  ClutterPoint p0, p1;
+  graphene_point_t p0, p1;
   float x_distance, y_distance;
   double angle;
 
   clutter_event_get_position (source, &p0);
   clutter_event_get_position (target, &p1);
 
-  if (clutter_point_equals (&p0, &p1))
+  if (graphene_point_equal (&p0, &p1))
     return 0;
 
-  clutter_point_distance (&p0, &p1, &x_distance, &y_distance);
+  graphene_point_distance (&p0, &p1, &x_distance, &y_distance);
 
   angle = atan2 (x_distance, y_distance);
 
diff --git a/clutter/clutter/clutter-event.h b/clutter/clutter/clutter-event.h
index 54155cd3d..f090ca8e1 100644
--- a/clutter/clutter/clutter-event.h
+++ b/clutter/clutter/clutter-event.h
@@ -686,7 +686,7 @@ void                    clutter_event_get_coords                (const ClutterEv
                                                                  gfloat                 *y);
 CLUTTER_EXPORT
 void                    clutter_event_get_position              (const ClutterEvent     *event,
-                                                                 ClutterPoint           *position);
+                                                                 graphene_point_t       *position);
 CLUTTER_EXPORT
 float                   clutter_event_get_distance              (const ClutterEvent     *source,
                                                                  const ClutterEvent     *target);
diff --git a/clutter/clutter/clutter-graphene.c b/clutter/clutter/clutter-graphene.c
index d037b6026..72ecbfd42 100644
--- a/clutter/clutter/clutter-graphene.c
+++ b/clutter/clutter/clutter-graphene.c
@@ -29,6 +29,23 @@
 #include "clutter-private.h"
 #include "clutter-types.h"
 
+static gboolean
+graphene_point_progress (const GValue *a,
+                         const GValue *b,
+                         double        progress,
+                         GValue       *retval)
+{
+  const graphene_point_t *ap = g_value_get_boxed (a);
+  const graphene_point_t *bp = g_value_get_boxed (b);
+  graphene_point_t res;
+
+  graphene_point_interpolate (ap, bp, progress, &res);
+
+  g_value_set_boxed (retval, &res);
+
+  return TRUE;
+}
+
 static gboolean
 graphene_point3d_progress (const GValue *a,
                            const GValue *b,
@@ -66,6 +83,8 @@ graphene_size_progress (const GValue *a,
 void
 clutter_graphene_init (void)
 {
+  clutter_interval_register_progress_func (GRAPHENE_TYPE_POINT,
+                                           graphene_point_progress);
   clutter_interval_register_progress_func (GRAPHENE_TYPE_POINT3D,
                                            graphene_point3d_progress);
   clutter_interval_register_progress_func (GRAPHENE_TYPE_SIZE,
diff --git a/clutter/clutter/clutter-input-device.c b/clutter/clutter/clutter-input-device.c
index c664e83f1..3975e88b5 100644
--- a/clutter/clutter/clutter-input-device.c
+++ b/clutter/clutter/clutter-input-device.c
@@ -991,7 +991,7 @@ clutter_input_device_get_enabled (ClutterInputDevice *device)
 gboolean
 clutter_input_device_get_coords (ClutterInputDevice   *device,
                                  ClutterEventSequence *sequence,
-                                 ClutterPoint         *point)
+                                 graphene_point_t     *point)
 {
   g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), FALSE);
   g_return_val_if_fail (point != NULL, FALSE);
@@ -1038,7 +1038,7 @@ _clutter_input_device_update (ClutterInputDevice   *device,
   ClutterStage *stage;
   ClutterActor *new_cursor_actor;
   ClutterActor *old_cursor_actor;
-  ClutterPoint point = { -1, -1 };
+  graphene_point_t point = GRAPHENE_POINT_INIT (-1.0f, -1.0f);
   ClutterInputDeviceType device_type = device->device_type;
 
   g_assert (device_type != CLUTTER_KEYBOARD_DEVICE &&
diff --git a/clutter/clutter/clutter-input-device.h b/clutter/clutter/clutter-input-device.h
index c121fe12c..00dcc01d5 100644
--- a/clutter/clutter/clutter-input-device.h
+++ b/clutter/clutter/clutter-input-device.h
@@ -58,7 +58,7 @@ gint                    clutter_input_device_get_device_id      (ClutterInputDev
 CLUTTER_EXPORT
 gboolean                clutter_input_device_get_coords        (ClutterInputDevice   *device,
                                                                 ClutterEventSequence *sequence,
-                                                                ClutterPoint         *point);
+                                                                graphene_point_t     *point);
 CLUTTER_EXPORT
 ClutterModifierType     clutter_input_device_get_modifier_state (ClutterInputDevice  *device);
 CLUTTER_EXPORT
diff --git a/clutter/clutter/clutter-script-parser.c b/clutter/clutter/clutter-script-parser.c
index f15b1d471..ac3bd94f8 100644
--- a/clutter/clutter/clutter-script-parser.c
+++ b/clutter/clutter/clutter-script-parser.c
@@ -492,8 +492,8 @@ _clutter_script_parse_color (ClutterScript *script,
 }
 
 static gboolean
-parse_point_from_array (JsonArray    *array,
-                        ClutterPoint *point)
+parse_point_from_array (JsonArray        *array,
+                        graphene_point_t *point)
 {
   if (json_array_get_length (array) != 2)
     return FALSE;
@@ -505,8 +505,8 @@ parse_point_from_array (JsonArray    *array,
 }
 
 static gboolean
-parse_point_from_object (JsonObject   *object,
-                         ClutterPoint *point)
+parse_point_from_object (JsonObject       *object,
+                         graphene_point_t *point)
 {
   if (json_object_has_member (object, "x"))
     point->x = json_object_get_double_member (object, "x");
@@ -522,9 +522,9 @@ parse_point_from_object (JsonObject   *object,
 }
 
 gboolean
-_clutter_script_parse_point (ClutterScript *script,
-                             JsonNode      *node,
-                             ClutterPoint  *point)
+_clutter_script_parse_point (ClutterScript    *script,
+                             JsonNode         *node,
+                             graphene_point_t *point)
 {
   g_return_val_if_fail (CLUTTER_IS_SCRIPT (script), FALSE);
   g_return_val_if_fail (node != NULL, FALSE);
@@ -1364,9 +1364,9 @@ _clutter_script_parse_node (ClutterScript *script,
                   return TRUE;
                 }
             }
-          else if (p_type == CLUTTER_TYPE_POINT)
+          else if (p_type == GRAPHENE_TYPE_POINT)
             {
-              ClutterPoint point = CLUTTER_POINT_INIT_ZERO;
+              graphene_point_t point = GRAPHENE_POINT_INIT_ZERO;
 
               if (_clutter_script_parse_point (script, node, &point))
                 {
@@ -1441,9 +1441,9 @@ _clutter_script_parse_node (ClutterScript *script,
                   return TRUE;
                 }
             }
-          else if (G_VALUE_HOLDS (value, CLUTTER_TYPE_POINT))
+          else if (G_VALUE_HOLDS (value, GRAPHENE_TYPE_POINT))
             {
-              ClutterPoint point = CLUTTER_POINT_INIT_ZERO;
+              graphene_point_t point = GRAPHENE_POINT_INIT_ZERO;
 
               if (_clutter_script_parse_point (script, node, &point))
                 {
diff --git a/clutter/clutter/clutter-script-private.h b/clutter/clutter/clutter-script-private.h
index 61276d359..3b623c03c 100644
--- a/clutter/clutter/clutter-script-private.h
+++ b/clutter/clutter/clutter-script-private.h
@@ -130,9 +130,9 @@ gboolean _clutter_script_parse_color       (ClutterScript   *script,
                                             ClutterColor    *color);
 GObject *_clutter_script_parse_alpha       (ClutterScript   *script,
                                             JsonNode        *node);
-gboolean _clutter_script_parse_point       (ClutterScript   *script,
-                                            JsonNode        *node,
-                                            ClutterPoint    *point);
+gboolean _clutter_script_parse_point       (ClutterScript    *script,
+                                            JsonNode         *node,
+                                            graphene_point_t *point);
 gboolean _clutter_script_parse_size        (ClutterScript   *script,
                                             JsonNode        *node,
                                             graphene_size_t *size);
diff --git a/clutter/clutter/clutter-scroll-actor.c b/clutter/clutter/clutter-scroll-actor.c
index a6cf6d54e..76f3af011 100644
--- a/clutter/clutter/clutter-scroll-actor.c
+++ b/clutter/clutter/clutter-scroll-actor.c
@@ -56,7 +56,7 @@
 
 struct _ClutterScrollActorPrivate
 {
-  ClutterPoint scroll_to;
+  graphene_point_t scroll_to;
 
   ClutterScrollMode scroll_mode;
 
@@ -94,19 +94,19 @@ G_DEFINE_TYPE_WITH_CODE (ClutterScrollActor, clutter_scroll_actor, CLUTTER_TYPE_
                                                 clutter_animatable_iface_init))
 
 static void
-clutter_scroll_actor_set_scroll_to_internal (ClutterScrollActor *self,
-                                             const ClutterPoint *point)
+clutter_scroll_actor_set_scroll_to_internal (ClutterScrollActor     *self,
+                                             const graphene_point_t *point)
 {
   ClutterScrollActorPrivate *priv = self->priv;
   ClutterActor *actor = CLUTTER_ACTOR (self);
   ClutterMatrix m = CLUTTER_MATRIX_INIT_IDENTITY;
   float dx, dy;
 
-  if (clutter_point_equals (&priv->scroll_to, point))
+  if (graphene_point_equal (&priv->scroll_to, point))
     return;
 
   if (point == NULL)
-    clutter_point_init (&priv->scroll_to, 0.f, 0.f);
+    graphene_point_init (&priv->scroll_to, 0.f, 0.f);
   else
     priv->scroll_to = *point;
 
@@ -216,7 +216,7 @@ clutter_scroll_actor_set_final_state (ClutterAnimatable *animatable,
   if (strcmp (property_name, "scroll-to") == 0)
     {
       ClutterScrollActor *self = CLUTTER_SCROLL_ACTOR (animatable);
-      const ClutterPoint *point = g_value_get_boxed (value);
+      const graphene_point_t *point = g_value_get_boxed (value);
 
       clutter_scroll_actor_set_scroll_to_internal (self, point);
     }
@@ -248,7 +248,7 @@ clutter_animatable_iface_init (ClutterAnimatableInterface *iface)
     g_param_spec_boxed ("scroll-to",
                         "Scroll To",
                         "The point to scroll the actor to",
-                        CLUTTER_TYPE_POINT,
+                        GRAPHENE_TYPE_POINT,
                         G_PARAM_READWRITE |
                         G_PARAM_STATIC_STRINGS |
                         CLUTTER_PARAM_ANIMATABLE);
@@ -322,7 +322,7 @@ clutter_scroll_actor_get_scroll_mode (ClutterScrollActor *actor)
 /**
  * clutter_scroll_actor_scroll_to_point:
  * @actor: a #ClutterScrollActor
- * @point: a #ClutterPoint
+ * @point: a #graphene_point_t
  *
  * Scrolls the contents of @actor so that @point is the new origin
  * of the visible area.
@@ -335,8 +335,8 @@ clutter_scroll_actor_get_scroll_mode (ClutterScrollActor *actor)
  * Since: 1.12
  */
 void
-clutter_scroll_actor_scroll_to_point (ClutterScrollActor *actor,
-                                      const ClutterPoint *point)
+clutter_scroll_actor_scroll_to_point (ClutterScrollActor     *actor,
+                                      const graphene_point_t *point)
 {
   ClutterScrollActorPrivate *priv;
   const ClutterAnimationInfo *info;
@@ -390,10 +390,10 @@ clutter_scroll_actor_scroll_to_point (ClutterScrollActor *actor,
 
   /* if a transition already exist, update its bounds */
   clutter_transition_set_from (priv->transition,
-                               CLUTTER_TYPE_POINT,
+                               GRAPHENE_TYPE_POINT,
                                &priv->scroll_to);
   clutter_transition_set_to (priv->transition,
-                             CLUTTER_TYPE_POINT,
+                             GRAPHENE_TYPE_POINT,
                              point);
 
   /* always use the current easing state */
diff --git a/clutter/clutter/clutter-scroll-actor.h b/clutter/clutter/clutter-scroll-actor.h
index f2eada11c..4a4171495 100644
--- a/clutter/clutter/clutter-scroll-actor.h
+++ b/clutter/clutter/clutter-scroll-actor.h
@@ -86,8 +86,8 @@ CLUTTER_EXPORT
 ClutterScrollMode       clutter_scroll_actor_get_scroll_mode    (ClutterScrollActor *actor);
 
 CLUTTER_EXPORT
-void                    clutter_scroll_actor_scroll_to_point    (ClutterScrollActor *actor,
-                                                                 const ClutterPoint *point);
+void                    clutter_scroll_actor_scroll_to_point    (ClutterScrollActor     *actor,
+                                                                 const graphene_point_t *point);
 CLUTTER_EXPORT
 void                    clutter_scroll_actor_scroll_to_rect     (ClutterScrollActor *actor,
                                                                  const ClutterRect  *rect);
diff --git a/clutter/clutter/clutter-stage-private.h b/clutter/clutter/clutter-stage-private.h
index 12b55ad76..e46c9bebb 100644
--- a/clutter/clutter/clutter-stage-private.h
+++ b/clutter/clutter/clutter-stage-private.h
@@ -79,12 +79,12 @@ gint64    _clutter_stage_get_update_time                  (ClutterStage *stage);
 void     _clutter_stage_clear_update_time                 (ClutterStage *stage);
 gboolean _clutter_stage_has_full_redraw_queued            (ClutterStage *stage);
 
-void clutter_stage_log_pick (ClutterStage       *stage,
-                             const ClutterPoint *vertices,
-                             ClutterActor       *actor);
+void clutter_stage_log_pick (ClutterStage           *stage,
+                             const graphene_point_t *vertices,
+                             ClutterActor           *actor);
 
-void clutter_stage_push_pick_clip (ClutterStage       *stage,
-                                   const ClutterPoint *vertices);
+void clutter_stage_push_pick_clip (ClutterStage           *stage,
+                                   const graphene_point_t *vertices);
 
 void clutter_stage_pop_pick_clip (ClutterStage *stage);
 
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index a72b81b04..c5583e5fa 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -107,7 +107,7 @@ struct _ClutterStageQueueRedrawEntry
 
 typedef struct _PickRecord
 {
-  ClutterPoint vertex[4];
+  graphene_point_t vertex[4];
   ClutterActor *actor;
   int clip_stack_top;
 } PickRecord;
@@ -115,7 +115,7 @@ typedef struct _PickRecord
 typedef struct _PickClipRecord
 {
   int prev;
-  ClutterPoint vertex[4];
+  graphene_point_t vertex[4];
 } PickClipRecord;
 
 struct _ClutterStagePrivate
@@ -376,9 +376,9 @@ _clutter_stage_clear_pick_stack (ClutterStage *stage)
 }
 
 void
-clutter_stage_log_pick (ClutterStage       *stage,
-                        const ClutterPoint *vertices,
-                        ClutterActor       *actor)
+clutter_stage_log_pick (ClutterStage           *stage,
+                        const graphene_point_t *vertices,
+                        ClutterActor           *actor)
 {
   ClutterStagePrivate *priv;
   PickRecord rec;
@@ -390,7 +390,7 @@ clutter_stage_log_pick (ClutterStage       *stage,
 
   g_assert (!priv->pick_stack_frozen);
 
-  memcpy (rec.vertex, vertices, 4 * sizeof (ClutterPoint));
+  memcpy (rec.vertex, vertices, 4 * sizeof (graphene_point_t));
   rec.actor = actor;
   rec.clip_stack_top = priv->pick_clip_stack_top;
 
@@ -398,8 +398,8 @@ clutter_stage_log_pick (ClutterStage       *stage,
 }
 
 void
-clutter_stage_push_pick_clip (ClutterStage       *stage,
-                              const ClutterPoint *vertices)
+clutter_stage_push_pick_clip (ClutterStage           *stage,
+                              const graphene_point_t *vertices)
 {
   ClutterStagePrivate *priv;
   PickClipRecord clip;
@@ -411,7 +411,7 @@ clutter_stage_push_pick_clip (ClutterStage       *stage,
   g_assert (!priv->pick_stack_frozen);
 
   clip.prev = priv->pick_clip_stack_top;
-  memcpy (clip.vertex, vertices, 4 * sizeof (ClutterPoint));
+  memcpy (clip.vertex, vertices, 4 * sizeof (graphene_point_t));
 
   g_array_append_val (priv->pick_clip_stack, clip);
   priv->pick_clip_stack_top = priv->pick_clip_stack->len - 1;
@@ -444,7 +444,7 @@ clutter_stage_pop_pick_clip (ClutterStage *stage)
 }
 
 static gboolean
-is_quadrilateral_axis_aligned_rectangle (const ClutterPoint *vertices)
+is_quadrilateral_axis_aligned_rectangle (const graphene_point_t *vertices)
 {
   int i;
 
@@ -462,8 +462,8 @@ is_quadrilateral_axis_aligned_rectangle (const ClutterPoint *vertices)
 }
 
 static gboolean
-is_inside_axis_aligned_rectangle (const ClutterPoint *point,
-                                  const ClutterPoint *vertices)
+is_inside_axis_aligned_rectangle (const graphene_point_t *point,
+                                  const graphene_point_t *vertices)
 {
   float min_x = FLT_MAX;
   float max_x = FLT_MIN;
@@ -485,15 +485,70 @@ is_inside_axis_aligned_rectangle (const ClutterPoint *point,
           point->y < max_y);
 }
 
+static int
+clutter_point_compare_line (const graphene_point_t *p,
+                            const graphene_point_t *a,
+                            const graphene_point_t *b)
+{
+  graphene_vec3_t vec_pa;
+  graphene_vec3_t vec_pb;
+  graphene_vec3_t cross;
+  float cross_z;
+
+  graphene_vec3_init (&vec_pa, p->x - a->x, p->y - a->y, 0.f);
+  graphene_vec3_init (&vec_pb, p->x - b->x, p->y - b->y, 0.f);
+  graphene_vec3_cross (&vec_pa, &vec_pb, &cross);
+  cross_z = graphene_vec3_get_z (&cross);
+
+  if (cross_z > 0.f)
+    return 1;
+  else if (cross_z < 0.f)
+    return -1;
+  else
+    return 0;
+}
+
+static gboolean
+is_inside_unaligned_rectangle (const graphene_point_t *point,
+                               const graphene_point_t *vertices)
+{
+  unsigned int i;
+  int first_side;
+
+  first_side = 0;
+
+  for (i = 0; i < 4; i++)
+    {
+      int side;
+
+      side = clutter_point_compare_line (point,
+                                         &vertices[i],
+                                         &vertices[(i + 1) % 4]);
+
+      if (side)
+        {
+          if (first_side == 0)
+            first_side = side;
+          else if (side != first_side)
+            return FALSE;
+        }
+    }
+
+  if (first_side == 0)
+    return FALSE;
+
+  return TRUE;
+}
+
 static gboolean
-is_inside_input_region (const ClutterPoint *point,
-                        const ClutterPoint *vertices)
+is_inside_input_region (const graphene_point_t *point,
+                        const graphene_point_t *vertices)
 {
 
   if (is_quadrilateral_axis_aligned_rectangle (vertices))
     return is_inside_axis_aligned_rectangle (point, vertices);
   else
-    return clutter_point_inside_quadrilateral (point, vertices);
+    return is_inside_unaligned_rectangle (point, vertices);
 }
 
 static gboolean
@@ -502,7 +557,7 @@ pick_record_contains_pixel (ClutterStage     *stage,
                             int               x,
                             int               y)
 {
-  const ClutterPoint point = CLUTTER_POINT_INIT (x, y);
+  const graphene_point_t point = GRAPHENE_POINT_INIT (x, y);
   ClutterStagePrivate *priv;
   int clip_index;
 
@@ -1367,7 +1422,7 @@ _clutter_stage_check_updated_pointers (ClutterStage *stage)
   GSList *updating = NULL;
   const GSList *devices;
   cairo_rectangle_int_t clip;
-  ClutterPoint point;
+  graphene_point_t point;
   gboolean has_clip;
 
   has_clip = _clutter_stage_window_get_redraw_clip_bounds (priv->impl, &clip);
diff --git a/clutter/clutter/clutter-timeline.c b/clutter/clutter/clutter-timeline.c
index 88b76be4b..cddbf39b5 100644
--- a/clutter/clutter/clutter-timeline.c
+++ b/clutter/clutter/clutter-timeline.c
@@ -145,8 +145,8 @@ struct _ClutterTimelinePrivate
   ClutterStepMode step_mode;
 
   /* cubic-bezier() parameters */
-  ClutterPoint cb_1;
-  ClutterPoint cb_2;
+  graphene_point_t cb_1;
+  graphene_point_t cb_2;
 
   guint is_playing         : 1;
 
@@ -846,8 +846,8 @@ clutter_timeline_init (ClutterTimeline *self)
   self->priv->step_mode = CLUTTER_STEP_MODE_END;
 
   /* default cubic-bezier() paramereters are (0, 0, 1, 1) */
-  clutter_point_init (&self->priv->cb_1, 0, 0);
-  clutter_point_init (&self->priv->cb_2, 1, 1);
+  graphene_point_init (&self->priv->cb_1, 0, 0);
+  graphene_point_init (&self->priv->cb_2, 1, 1);
 }
 
 struct CheckIfMarkerHitClosure
@@ -2485,9 +2485,9 @@ clutter_timeline_get_step_progress (ClutterTimeline *timeline,
  * Since: 1.12
  */
 void
-clutter_timeline_set_cubic_bezier_progress (ClutterTimeline    *timeline,
-                                            const ClutterPoint *c_1,
-                                            const ClutterPoint *c_2)
+clutter_timeline_set_cubic_bezier_progress (ClutterTimeline        *timeline,
+                                            const graphene_point_t *c_1,
+                                            const graphene_point_t *c_2)
 {
   ClutterTimelinePrivate *priv;
 
@@ -2522,9 +2522,9 @@ clutter_timeline_set_cubic_bezier_progress (ClutterTimeline    *timeline,
  * Since: 1.12
  */
 gboolean
-clutter_timeline_get_cubic_bezier_progress (ClutterTimeline *timeline,
-                                            ClutterPoint    *c_1,
-                                            ClutterPoint    *c_2)
+clutter_timeline_get_cubic_bezier_progress (ClutterTimeline  *timeline,
+                                            graphene_point_t *c_1,
+                                            graphene_point_t *c_2)
 {
   g_return_val_if_fail (CLUTTER_IS_TIMELINE (timeline), FALSE);
 
diff --git a/clutter/clutter/clutter-timeline.h b/clutter/clutter/clutter-timeline.h
index 036f555f0..656a4c503 100644
--- a/clutter/clutter/clutter-timeline.h
+++ b/clutter/clutter/clutter-timeline.h
@@ -208,13 +208,13 @@ gboolean                        clutter_timeline_get_step_progress
                                                                                  gint                     
*n_steps,
                                                                                  ClutterStepMode          
*step_mode);
 CLUTTER_EXPORT
-void                            clutter_timeline_set_cubic_bezier_progress      (ClutterTimeline          
*timeline,
-                                                                                 const ClutterPoint       
*c_1,
-                                                                                 const ClutterPoint       
*c_2);
+void                            clutter_timeline_set_cubic_bezier_progress      (ClutterTimeline        
*timeline,
+                                                                                 const graphene_point_t *c_1,
+                                                                                 const graphene_point_t 
*c_2);
 CLUTTER_EXPORT
-gboolean                        clutter_timeline_get_cubic_bezier_progress      (ClutterTimeline          
*timeline,
-                                                                                 ClutterPoint             
*c_1,
-                                                                                 ClutterPoint             
*c_2);
+gboolean                        clutter_timeline_get_cubic_bezier_progress      (ClutterTimeline  *timeline,
+                                                                                 graphene_point_t *c_1,
+                                                                                 graphene_point_t *c_2);
 
 CLUTTER_EXPORT
 gint64                          clutter_timeline_get_duration_hint              (ClutterTimeline          
*timeline);
diff --git a/clutter/clutter/clutter-types.h b/clutter/clutter/clutter-types.h
index 38e870e9d..4bae2ebdf 100644
--- a/clutter/clutter/clutter-types.h
+++ b/clutter/clutter/clutter-types.h
@@ -44,7 +44,6 @@ G_BEGIN_DECLS
 #define CLUTTER_TYPE_MATRIX             (clutter_matrix_get_type ())
 #define CLUTTER_TYPE_PAINT_VOLUME       (clutter_paint_volume_get_type ())
 #define CLUTTER_TYPE_PERSPECTIVE        (clutter_perspective_get_type ())
-#define CLUTTER_TYPE_POINT              (clutter_point_get_type ())
 #define CLUTTER_TYPE_RECT               (clutter_rect_get_type ())
 
 typedef struct _ClutterActor                    ClutterActor;
@@ -82,7 +81,6 @@ typedef struct _ClutterGeometry                 ClutterGeometry; /* XXX:2.0 - re
 typedef struct _ClutterKnot                     ClutterKnot;
 typedef struct _ClutterMargin                   ClutterMargin;
 typedef struct _ClutterPerspective              ClutterPerspective;
-typedef struct _ClutterPoint                    ClutterPoint;
 typedef struct _ClutterRect                     ClutterRect;
 
 typedef struct _ClutterAlpha                   ClutterAlpha;
@@ -133,73 +131,6 @@ typedef struct _ClutterShader                   ClutterShader; /* deprecated */
  */
 typedef struct _ClutterPaintVolume      ClutterPaintVolume;
 
-/**
- * ClutterPoint:
- * @x: X coordinate, in pixels
- * @y: Y coordinate, in pixels
- *
- * A point in 2D space.
- *
- * Since: 1.12
- */
-struct _ClutterPoint
-{
-  float x;
-  float y;
-};
-
-/**
- * CLUTTER_POINT_INIT:
- * @x: X coordinate
- * @y: Y coordinate
- *
- * A simple macro for initializing a #ClutterPoint when declaring it, e.g.:
- *
- * |[
- *   ClutterPoint p = CLUTTER_POINT_INIT (100, 100);
- * ]|
- *
- * Since: 1.12
- */
-#define CLUTTER_POINT_INIT(x,y)         { (x), (y) }
-
-/**
- * CLUTTER_POINT_INIT_ZERO:
- *
- * A simple macro for initializing a #ClutterPoint to (0, 0) when
- * declaring it.
- *
- * Since: 1.12
- */
-#define CLUTTER_POINT_INIT_ZERO         CLUTTER_POINT_INIT (0.f, 0.f)
-
-CLUTTER_EXPORT
-GType clutter_point_get_type (void) G_GNUC_CONST;
-
-CLUTTER_EXPORT
-const ClutterPoint *    clutter_point_zero      (void);
-CLUTTER_EXPORT
-ClutterPoint *          clutter_point_alloc     (void);
-CLUTTER_EXPORT
-ClutterPoint *          clutter_point_init      (ClutterPoint       *point,
-                                                 float               x,
-                                                 float               y);
-CLUTTER_EXPORT
-ClutterPoint *          clutter_point_copy      (const ClutterPoint *point);
-CLUTTER_EXPORT
-void                    clutter_point_free      (ClutterPoint       *point);
-CLUTTER_EXPORT
-gboolean                clutter_point_equals    (const ClutterPoint *a,
-                                                 const ClutterPoint *b);
-CLUTTER_EXPORT
-float                   clutter_point_distance  (const ClutterPoint *a,
-                                                 const ClutterPoint *b,
-                                                 float              *x_distance,
-                                                 float              *y_distance);
-CLUTTER_EXPORT
-gboolean clutter_point_inside_quadrilateral     (const ClutterPoint *point,
-                                                 const ClutterPoint *vertices);
-
 /**
  * ClutterRect:
  * @origin: the origin of the rectangle
@@ -223,7 +154,7 @@ gboolean clutter_point_inside_quadrilateral     (const ClutterPoint *point,
  */
 struct _ClutterRect
 {
-  ClutterPoint origin;
+  graphene_point_t origin;
   graphene_size_t size;
 };
 
@@ -279,10 +210,10 @@ CLUTTER_EXPORT
 ClutterRect *           clutter_rect_normalize          (ClutterRect       *rect);
 CLUTTER_EXPORT
 void                    clutter_rect_get_center         (ClutterRect       *rect,
-                                                         ClutterPoint      *center);
+                                                         graphene_point_t  *center);
 CLUTTER_EXPORT
 gboolean                clutter_rect_contains_point     (ClutterRect       *rect,
-                                                         ClutterPoint      *point);
+                                                         graphene_point_t  *point);
 CLUTTER_EXPORT
 gboolean                clutter_rect_contains_rect      (ClutterRect       *a,
                                                          ClutterRect       *b);
diff --git a/clutter/clutter/clutter-zoom-action.c b/clutter/clutter/clutter-zoom-action.c
index 67a3d12bd..c25b79688 100644
--- a/clutter/clutter/clutter-zoom-action.c
+++ b/clutter/clutter/clutter-zoom-action.c
@@ -80,9 +80,9 @@ struct _ClutterZoomActionPrivate
 
   ZoomPoint points[2];
 
-  ClutterPoint initial_focal_point;
-  ClutterPoint focal_point;
-  ClutterPoint transformed_focal_point;
+  graphene_point_t initial_focal_point;
+  graphene_point_t focal_point;
+  graphene_point_t transformed_focal_point;
 
   gfloat initial_x;
   gfloat initial_y;
@@ -238,7 +238,7 @@ clutter_zoom_action_gesture_cancel (ClutterGestureAction *action,
 static gboolean
 clutter_zoom_action_real_zoom (ClutterZoomAction *action,
                                ClutterActor      *actor,
-                               ClutterPoint      *focal_point,
+                               graphene_point_t  *focal_point,
                                gdouble            factor)
 {
   ClutterZoomActionPrivate *priv = action->priv;
@@ -400,7 +400,7 @@ clutter_zoom_action_class_init (ClutterZoomActionClass *klass)
                   _clutter_marshal_BOOLEAN__OBJECT_BOXED_DOUBLE,
                   G_TYPE_BOOLEAN, 3,
                   CLUTTER_TYPE_ACTOR,
-                  CLUTTER_TYPE_POINT,
+                  GRAPHENE_TYPE_POINT,
                   G_TYPE_DOUBLE);
 }
 
@@ -478,7 +478,7 @@ clutter_zoom_action_get_zoom_axis (ClutterZoomAction *action)
 /**
  * clutter_zoom_action_get_focal_point:
  * @action: a #ClutterZoomAction
- * @point: (out): a #ClutterPoint
+ * @point: (out): a #graphene_point_t
  *
  * Retrieves the focal point of the current zoom
  *
@@ -486,7 +486,7 @@ clutter_zoom_action_get_zoom_axis (ClutterZoomAction *action)
  */
 void
 clutter_zoom_action_get_focal_point (ClutterZoomAction *action,
-                                     ClutterPoint      *point)
+                                     graphene_point_t  *point)
 {
   g_return_if_fail (CLUTTER_IS_ZOOM_ACTION (action));
   g_return_if_fail (point != NULL);
@@ -497,7 +497,7 @@ clutter_zoom_action_get_focal_point (ClutterZoomAction *action,
 /**
  * clutter_zoom_action_get_transformed_focal_point:
  * @action: a #ClutterZoomAction
- * @point: (out): a #ClutterPoint
+ * @point: (out): a #graphene_point_t
  *
  * Retrieves the focal point relative to the actor's coordinates of
  * the current zoom
@@ -506,7 +506,7 @@ clutter_zoom_action_get_focal_point (ClutterZoomAction *action,
  */
 void
 clutter_zoom_action_get_transformed_focal_point (ClutterZoomAction *action,
-                                                 ClutterPoint      *point)
+                                                 graphene_point_t  *point)
 {
   g_return_if_fail (CLUTTER_IS_ZOOM_ACTION (action));
   g_return_if_fail (point != NULL);
diff --git a/clutter/clutter/clutter-zoom-action.h b/clutter/clutter/clutter-zoom-action.h
index 2a4601684..f1f7e572d 100644
--- a/clutter/clutter/clutter-zoom-action.h
+++ b/clutter/clutter/clutter-zoom-action.h
@@ -79,7 +79,7 @@ struct _ClutterZoomActionClass
   /*< public >*/
   gboolean (* zoom)  (ClutterZoomAction *action,
                       ClutterActor      *actor,
-                      ClutterPoint      *focal_point,
+                      graphene_point_t  *focal_point,
                       gdouble            factor);
 
   /*< private >*/
@@ -104,10 +104,10 @@ ClutterZoomAxis clutter_zoom_action_get_zoom_axis               (ClutterZoomActi
 
 CLUTTER_EXPORT
 void            clutter_zoom_action_get_focal_point             (ClutterZoomAction *action,
-                                                                 ClutterPoint      *point);
+                                                                 graphene_point_t  *point);
 CLUTTER_EXPORT
 void            clutter_zoom_action_get_transformed_focal_point (ClutterZoomAction *action,
-                                                                 ClutterPoint      *point);
+                                                                 graphene_point_t  *point);
 
 G_END_DECLS
 
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index 7b05d72eb..b019b4d7d 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -258,7 +258,7 @@ meta_backend_monitors_changed (MetaBackend *backend)
     meta_backend_get_monitor_manager (backend);
   ClutterDeviceManager *manager = clutter_device_manager_get_default ();
   ClutterInputDevice *device = clutter_device_manager_get_core_device (manager, CLUTTER_POINTER_DEVICE);
-  ClutterPoint point;
+  graphene_point_t point;
 
   meta_backend_sync_screen_size (backend);
 
diff --git a/src/backends/meta-cursor-renderer.c b/src/backends/meta-cursor-renderer.c
index dae40b3d3..b1bcbc842 100644
--- a/src/backends/meta-cursor-renderer.c
+++ b/src/backends/meta-cursor-renderer.c
@@ -315,13 +315,13 @@ meta_cursor_renderer_set_position (MetaCursorRenderer *renderer,
   meta_cursor_renderer_update_cursor (renderer, priv->displayed_cursor);
 }
 
-ClutterPoint
+graphene_point_t
 meta_cursor_renderer_get_position (MetaCursorRenderer *renderer)
 {
   MetaCursorRendererPrivate *priv =
     meta_cursor_renderer_get_instance_private (renderer);
 
-  return (ClutterPoint) {
+  return (graphene_point_t) {
     .x = priv->current_x,
     .y = priv->current_y
   };
diff --git a/src/backends/meta-cursor-renderer.h b/src/backends/meta-cursor-renderer.h
index 60f1dbe15..cfa7bc995 100644
--- a/src/backends/meta-cursor-renderer.h
+++ b/src/backends/meta-cursor-renderer.h
@@ -62,7 +62,7 @@ void meta_cursor_renderer_set_cursor (MetaCursorRenderer *renderer,
 void meta_cursor_renderer_set_position (MetaCursorRenderer *renderer,
                                         float               x,
                                         float               y);
-ClutterPoint meta_cursor_renderer_get_position (MetaCursorRenderer *renderer);
+graphene_point_t meta_cursor_renderer_get_position (MetaCursorRenderer *renderer);
 void meta_cursor_renderer_force_update (MetaCursorRenderer *renderer);
 
 MetaCursorSprite * meta_cursor_renderer_get_cursor (MetaCursorRenderer *renderer);
diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c
index 45291e286..ec95e62af 100644
--- a/src/backends/meta-cursor-tracker.c
+++ b/src/backends/meta-cursor-tracker.c
@@ -407,7 +407,7 @@ get_pointer_position_clutter (int         *x,
 {
   ClutterDeviceManager *cmanager;
   ClutterInputDevice *cdevice;
-  ClutterPoint point;
+  graphene_point_t point;
 
   cmanager = clutter_device_manager_get_default ();
   cdevice = clutter_device_manager_get_core_device (cmanager, CLUTTER_POINTER_DEVICE);
diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c 
b/src/backends/meta-screen-cast-monitor-stream-src.c
index f582217e5..0cf553482 100644
--- a/src/backends/meta-screen-cast-monitor-stream-src.c
+++ b/src/backends/meta-screen-cast-monitor-stream-src.c
@@ -167,7 +167,7 @@ is_cursor_in_stream (MetaScreenCastMonitorStreamSrc *monitor_src)
     }
   else
     {
-      ClutterPoint cursor_position;
+      graphene_point_t cursor_position;
 
       cursor_position = meta_cursor_renderer_get_position (cursor_renderer);
       return clutter_rect_contains_point (&logical_monitor_rect,
@@ -384,7 +384,7 @@ meta_screen_cast_monitor_stream_src_set_cursor_metadata (MetaScreenCastStreamSrc
   ClutterRect logical_monitor_rect;
   MetaRendererView *view;
   float view_scale;
-  ClutterPoint cursor_position;
+  graphene_point_t cursor_position;
   int x, y;
 
   cursor_sprite = meta_cursor_renderer_get_cursor (cursor_renderer);
diff --git a/src/backends/meta-screen-cast-window-stream-src.c 
b/src/backends/meta-screen-cast-window-stream-src.c
index c31830b03..35ee2e7c9 100644
--- a/src/backends/meta-screen-cast-window-stream-src.c
+++ b/src/backends/meta-screen-cast-window-stream-src.c
@@ -112,8 +112,8 @@ maybe_draw_cursor_sprite (MetaScreenCastWindowStreamSrc *window_src,
   MetaCursorSprite *cursor_sprite;
   CoglTexture *cursor_texture;
   MetaScreenCastWindow *screen_cast_window;
-  ClutterPoint cursor_position;
-  ClutterPoint relative_cursor_position;
+  graphene_point_t cursor_position;
+  graphene_point_t relative_cursor_position;
   cairo_surface_t *cursor_surface;
   uint8_t *cursor_surface_data;
   GError *error = NULL;
@@ -298,7 +298,7 @@ is_cursor_in_stream (MetaScreenCastWindowStreamSrc *window_src)
   MetaCursorRenderer *cursor_renderer =
     meta_backend_get_cursor_renderer (backend);
   MetaCursorSprite *cursor_sprite;
-  ClutterPoint cursor_position;
+  graphene_point_t cursor_position;
   MetaScreenCastWindow *screen_cast_window;
 
   cursor_sprite = meta_cursor_renderer_get_cursor (cursor_renderer);
@@ -423,9 +423,9 @@ meta_screen_cast_window_stream_src_set_cursor_metadata (MetaScreenCastStreamSrc
     meta_backend_get_cursor_renderer (backend);
   MetaScreenCastWindow *screen_cast_window = window_src->screen_cast_window;
   MetaCursorSprite *cursor_sprite;
-  ClutterPoint cursor_position;
+  graphene_point_t cursor_position;
   float scale;
-  ClutterPoint relative_cursor_position;
+  graphene_point_t relative_cursor_position;
   int x, y;
 
   cursor_sprite = meta_cursor_renderer_get_cursor (cursor_renderer);
diff --git a/src/backends/meta-screen-cast-window.c b/src/backends/meta-screen-cast-window.c
index ce2bf82c9..809aca9be 100644
--- a/src/backends/meta-screen-cast-window.c
+++ b/src/backends/meta-screen-cast-window.c
@@ -54,9 +54,9 @@ meta_screen_cast_window_transform_relative_position (MetaScreenCastWindow *scree
 gboolean
 meta_screen_cast_window_transform_cursor_position (MetaScreenCastWindow *screen_cast_window,
                                                    MetaCursorSprite     *cursor_sprite,
-                                                   ClutterPoint         *cursor_position,
+                                                   graphene_point_t     *cursor_position,
                                                    float                *out_cursor_scale,
-                                                   ClutterPoint         *out_relative_cursor_position)
+                                                   graphene_point_t     *out_relative_cursor_position)
 {
   MetaScreenCastWindowInterface *iface =
     META_SCREEN_CAST_WINDOW_GET_IFACE (screen_cast_window);
diff --git a/src/backends/meta-screen-cast-window.h b/src/backends/meta-screen-cast-window.h
index badd88224..b836fec5c 100644
--- a/src/backends/meta-screen-cast-window.h
+++ b/src/backends/meta-screen-cast-window.h
@@ -48,9 +48,9 @@ struct _MetaScreenCastWindowInterface
 
   gboolean (*transform_cursor_position) (MetaScreenCastWindow *screen_cast_window,
                                          MetaCursorSprite     *cursor_sprite,
-                                         ClutterPoint         *cursor_position,
+                                         graphene_point_t     *cursor_position,
                                          float                *out_cursor_scale,
-                                         ClutterPoint         *out_relative_cursor_position);
+                                         graphene_point_t     *out_relative_cursor_position);
 
   void (*capture_into) (MetaScreenCastWindow *screen_cast_window,
                         MetaRectangle        *bounds,
@@ -70,9 +70,9 @@ void meta_screen_cast_window_transform_relative_position (MetaScreenCastWindow *
 
 gboolean meta_screen_cast_window_transform_cursor_position (MetaScreenCastWindow *screen_cast_window,
                                                             MetaCursorSprite     *cursor_sprite,
-                                                            ClutterPoint         *cursor_position,
+                                                            graphene_point_t     *cursor_position,
                                                             float                *out_cursor_scale,
-                                                            ClutterPoint         
*out_relative_cursor_position);
+                                                            graphene_point_t     
*out_relative_cursor_position);
 
 void meta_screen_cast_window_capture_into (MetaScreenCastWindow *screen_cast_window,
                                            MetaRectangle        *bounds,
diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c
index 2ae5165ec..0bfae6d30 100644
--- a/src/backends/native/meta-backend-native.c
+++ b/src/backends/native/meta-backend-native.c
@@ -150,7 +150,7 @@ constrain_all_screen_monitors (ClutterInputDevice *device,
                                float              *x,
                                float              *y)
 {
-  ClutterPoint current;
+  graphene_point_t current;
   float cx, cy;
   GList *logical_monitors, *l;
 
diff --git a/src/backends/native/meta-barrier-native.c b/src/backends/native/meta-barrier-native.c
index e336d31bf..34a2c90c4 100644
--- a/src/backends/native/meta-barrier-native.c
+++ b/src/backends/native/meta-barrier-native.c
@@ -468,7 +468,7 @@ meta_barrier_manager_native_process (MetaBarrierManagerNative *manager,
                                      float                    *x,
                                      float                    *y)
 {
-  ClutterPoint prev_pos;
+  graphene_point_t prev_pos;
   float prev_x;
   float prev_y;
   float orig_x = *x;
diff --git a/src/backends/native/meta-device-manager-native.c 
b/src/backends/native/meta-device-manager-native.c
index d64458e6b..f94abddb2 100644
--- a/src/backends/native/meta-device-manager-native.c
+++ b/src/backends/native/meta-device-manager-native.c
@@ -380,7 +380,7 @@ notify_pinch_gesture_event (ClutterInputDevice          *input_device,
   MetaSeatNative *seat;
   ClutterStage *stage;
   ClutterEvent *event = NULL;
-  ClutterPoint pos;
+  graphene_point_t pos;
 
   /* We can drop the event on the floor if no stage has been
    * associated with the device yet. */
@@ -427,7 +427,7 @@ notify_swipe_gesture_event (ClutterInputDevice          *input_device,
   MetaSeatNative *seat;
   ClutterStage *stage;
   ClutterEvent *event = NULL;
-  ClutterPoint pos;
+  graphene_point_t pos;
 
   /* We can drop the event on the floor if no stage has been
    * associated with the device yet. */
diff --git a/src/backends/native/meta-seat-native.c b/src/backends/native/meta-seat-native.c
index 714624cea..a14509bd3 100644
--- a/src/backends/native/meta-seat-native.c
+++ b/src/backends/native/meta-seat-native.c
@@ -571,7 +571,7 @@ meta_seat_native_notify_button (MetaSeatNative     *seat,
 
   if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE)
     {
-      ClutterPoint point;
+      graphene_point_t point;
 
       clutter_input_device_get_coords (input_device, NULL, &point);
       event->button.x = point.x;
diff --git a/src/backends/native/meta-seat-native.h b/src/backends/native/meta-seat-native.h
index 0b8f3a002..9dd2fbdad 100644
--- a/src/backends/native/meta-seat-native.h
+++ b/src/backends/native/meta-seat-native.h
@@ -39,7 +39,7 @@ struct _MetaTouchState
 
   int device_slot;
   int seat_slot;
-  ClutterPoint coords;
+  graphene_point_t coords;
 };
 
 struct _MetaSeatNative
diff --git a/src/compositor/meta-dnd-actor.c b/src/compositor/meta-dnd-actor.c
index af49ee27d..31a01db90 100644
--- a/src/compositor/meta-dnd-actor.c
+++ b/src/compositor/meta-dnd-actor.c
@@ -207,7 +207,7 @@ meta_dnd_actor_drag_finish (MetaDnDActor *self,
       if (CLUTTER_ACTOR_IS_VISIBLE (self->drag_origin))
         {
           float anchor_x, anchor_y;
-          ClutterPoint dest;
+          graphene_point_t dest;
 
           clutter_actor_get_transformed_position (self->drag_origin,
                                                   &dest.x, &dest.y);
diff --git a/src/compositor/meta-feedback-actor.c b/src/compositor/meta-feedback-actor.c
index 74ab8054c..c8eb0fcac 100644
--- a/src/compositor/meta-feedback-actor.c
+++ b/src/compositor/meta-feedback-actor.c
@@ -241,7 +241,7 @@ void
 meta_feedback_actor_update (MetaFeedbackActor  *self,
                             const ClutterEvent *event)
 {
-  ClutterPoint point;
+  graphene_point_t point;
 
   g_return_if_fail (META_IS_FEEDBACK_ACTOR (self));
   g_return_if_fail (event != NULL);
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index d644bc9a4..6e86424dc 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1174,9 +1174,9 @@ meta_window_actor_transform_relative_position (MetaScreenCastWindow *screen_cast
 static gboolean
 meta_window_actor_transform_cursor_position (MetaScreenCastWindow *screen_cast_window,
                                              MetaCursorSprite     *cursor_sprite,
-                                             ClutterPoint         *cursor_position,
+                                             graphene_point_t     *cursor_position,
                                              float                *out_cursor_scale,
-                                             ClutterPoint         *out_relative_cursor_position)
+                                             graphene_point_t     *out_relative_cursor_position)
 {
   MetaWindowActor *window_actor = META_WINDOW_ACTOR (screen_cast_window);
   MetaWindowActorPrivate *priv =
diff --git a/src/tests/clutter-test-utils.c b/src/tests/clutter-test-utils.c
index 3bd99989e..c75bc4974 100644
--- a/src/tests/clutter-test-utils.c
+++ b/src/tests/clutter-test-utils.c
@@ -264,7 +264,7 @@ clutter_test_run (void)
 typedef struct {
   ClutterActor *stage;
 
-  ClutterPoint point;
+  graphene_point_t point;
 
   gpointer result;
 
@@ -339,10 +339,10 @@ on_key_press_event (ClutterActor *stage,
  * Since: 1.18
  */
 gboolean
-clutter_test_check_actor_at_point (ClutterActor        *stage,
-                                   const ClutterPoint  *point,
-                                   ClutterActor        *actor,
-                                   ClutterActor       **result)
+clutter_test_check_actor_at_point (ClutterActor            *stage,
+                                   const graphene_point_t  *point,
+                                   ClutterActor            *actor,
+                                   ClutterActor           **result)
 {
   ValidateData *data;
   guint press_id = 0;
@@ -401,10 +401,10 @@ clutter_test_check_actor_at_point (ClutterActor        *stage,
  * Since: 1.18
  */
 gboolean
-clutter_test_check_color_at_point (ClutterActor       *stage,
-                                   const ClutterPoint *point,
-                                   const ClutterColor *color,
-                                   ClutterColor       *result)
+clutter_test_check_color_at_point (ClutterActor           *stage,
+                                   const graphene_point_t *point,
+                                   const ClutterColor     *color,
+                                   ClutterColor           *result)
 {
   ValidateData *data;
   gboolean retval;
diff --git a/src/tests/clutter-test-utils.h b/src/tests/clutter-test-utils.h
index f666d8773..62e8e9fdc 100644
--- a/src/tests/clutter-test-utils.h
+++ b/src/tests/clutter-test-utils.h
@@ -121,7 +121,7 @@ ClutterActor *  clutter_test_get_stage          (void);
 
 #define clutter_test_assert_actor_at_point(stage,point,actor) \
 G_STMT_START { \
-  const ClutterPoint *__p = (point); \
+  const graphene_point_t *__p = (point); \
   ClutterActor *__actor = (actor); \
   ClutterActor *__stage = (stage); \
   ClutterActor *__res; \
@@ -141,7 +141,7 @@ G_STMT_START { \
 
 #define clutter_test_assert_color_at_point(stage,point,color) \
 G_STMT_START { \
-  const ClutterPoint *__p = (point); \
+  const graphene_point_t *__p = (point); \
   const ClutterColor *__c = (color); \
   ClutterActor *__stage = (stage); \
   ClutterColor __res; \
@@ -158,15 +158,15 @@ G_STMT_START { \
 } G_STMT_END
 
 CLUTTER_EXPORT
-gboolean        clutter_test_check_actor_at_point       (ClutterActor       *stage,
-                                                         const ClutterPoint *point,
-                                                         ClutterActor       *actor,
-                                                         ClutterActor      **result);
+gboolean        clutter_test_check_actor_at_point       (ClutterActor            *stage,
+                                                         const graphene_point_t  *point,
+                                                         ClutterActor            *actor,
+                                                         ClutterActor           **result);
 CLUTTER_EXPORT
-gboolean        clutter_test_check_color_at_point       (ClutterActor       *stage,
-                                                         const ClutterPoint *point,
-                                                         const ClutterColor *color,
-                                                         ClutterColor       *result);
+gboolean        clutter_test_check_color_at_point       (ClutterActor           *stage,
+                                                         const graphene_point_t *point,
+                                                         const ClutterColor     *color,
+                                                         ClutterColor           *result);
 
 G_END_DECLS
 
diff --git a/src/tests/clutter/conform/actor-layout.c b/src/tests/clutter/conform/actor-layout.c
index 099a279e1..9a9814b08 100644
--- a/src/tests/clutter/conform/actor-layout.c
+++ b/src/tests/clutter/conform/actor-layout.c
@@ -8,7 +8,7 @@ actor_basic_layout (void)
   ClutterActor *stage = clutter_test_get_stage ();
   ClutterActor *vase;
   ClutterActor *flower[3];
-  ClutterPoint p;
+  graphene_point_t p;
 
   vase = clutter_actor_new ();
   clutter_actor_set_name (vase, "Vase");
@@ -33,13 +33,13 @@ actor_basic_layout (void)
   clutter_actor_set_name (flower[2], "Green Flower");
   clutter_actor_add_child (vase, flower[2]);
 
-  clutter_point_init (&p, 50, 50);
+  graphene_point_init (&p, 50, 50);
   clutter_test_assert_actor_at_point (stage, &p, flower[0]);
 
-  clutter_point_init (&p, 150, 50);
+  graphene_point_init (&p, 150, 50);
   clutter_test_assert_actor_at_point (stage, &p, flower[1]);
 
-  clutter_point_init (&p, 250, 50);
+  graphene_point_init (&p, 250, 50);
   clutter_test_assert_actor_at_point (stage, &p, flower[2]);
 }
 
@@ -49,7 +49,7 @@ actor_margin_layout (void)
   ClutterActor *stage = clutter_test_get_stage ();
   ClutterActor *vase;
   ClutterActor *flower[3];
-  ClutterPoint p;
+  graphene_point_t p;
 
   vase = clutter_actor_new ();
   clutter_actor_set_name (vase, "Vase");
@@ -78,13 +78,13 @@ actor_margin_layout (void)
   clutter_actor_set_margin_bottom (flower[2], 6);
   clutter_actor_add_child (vase, flower[2]);
 
-  clutter_point_init (&p, 0, 7);
+  graphene_point_init (&p, 0, 7);
   clutter_test_assert_actor_at_point (stage, &p, flower[0]);
 
-  clutter_point_init (&p, 106, 50);
+  graphene_point_init (&p, 106, 50);
   clutter_test_assert_actor_at_point (stage, &p, flower[1]);
 
-  clutter_point_init (&p, 212, 7);
+  graphene_point_init (&p, 212, 7);
   clutter_test_assert_actor_at_point (stage, &p, flower[2]);
 }
 
diff --git a/src/tests/clutter/conform/meson.build b/src/tests/clutter/conform/meson.build
index 24c80e82a..eced790b1 100644
--- a/src/tests/clutter/conform/meson.build
+++ b/src/tests/clutter/conform/meson.build
@@ -33,7 +33,6 @@ clutter_conform_tests_general_tests = [
   'interval',
   'script-parser',
   'units',
-  'point',
 ]
 
 clutter_conform_tests_deprecated_tests = [
diff --git a/src/tests/clutter/interactive/test-events.c b/src/tests/clutter/interactive/test-events.c
index 013231ef8..f31c7d228 100644
--- a/src/tests/clutter/interactive/test-events.c
+++ b/src/tests/clutter/interactive/test-events.c
@@ -218,7 +218,7 @@ input_cb (ClutterActor *actor,
 {
   ClutterActor *stage = clutter_actor_get_stage (actor); 
   ClutterActor *source_actor = clutter_event_get_source (event);
-  ClutterPoint position;
+  graphene_point_t position;
   gchar *state;
   gchar keybuf[128];
   gint device_id;
diff --git a/src/wayland/meta-pointer-confinement-wayland.c b/src/wayland/meta-pointer-confinement-wayland.c
index 29e5cc3fb..d5491e9f4 100644
--- a/src/wayland/meta-pointer-confinement-wayland.c
+++ b/src/wayland/meta-pointer-confinement-wayland.c
@@ -622,7 +622,7 @@ meta_pointer_confinement_wayland_maybe_warp (MetaPointerConfinementWayland *self
 {
   MetaWaylandSeat *seat;
   MetaWaylandSurface *surface;
-  ClutterPoint point;
+  graphene_point_t point;
   float sx;
   float sy;
   cairo_region_t *region;
diff --git a/src/wayland/meta-wayland-cursor-surface.c b/src/wayland/meta-wayland-cursor-surface.c
index 76268d5f2..7ce462ee7 100644
--- a/src/wayland/meta-wayland-cursor-surface.c
+++ b/src/wayland/meta-wayland-cursor-surface.c
@@ -186,7 +186,7 @@ meta_wayland_cursor_surface_is_on_logical_monitor (MetaWaylandSurfaceRole *role,
     META_WAYLAND_CURSOR_SURFACE (surface->role);
   MetaWaylandCursorSurfacePrivate *priv =
     meta_wayland_cursor_surface_get_instance_private (cursor_surface);
-  ClutterPoint point;
+  graphene_point_t point;
   ClutterRect logical_monitor_rect;
 
   if (!priv->cursor_renderer)
diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c
index 38aa0f317..b9d3a6c75 100644
--- a/src/wayland/meta-wayland-data-device.c
+++ b/src/wayland/meta-wayland-data-device.c
@@ -1161,7 +1161,7 @@ meta_wayland_data_device_start_drag (MetaWaylandDataDevice                 *data
 {
   MetaWaylandSeat *seat = wl_container_of (data_device, seat, data_device);
   MetaWaylandDragGrab *drag_grab;
-  ClutterPoint pos, surface_pos;
+  graphene_point_t pos, surface_pos;
   ClutterModifierType modifiers;
   MetaSurfaceActor *surface_actor;
 
diff --git a/src/wayland/meta-wayland-dnd-surface.c b/src/wayland/meta-wayland-dnd-surface.c
index 2020309a8..bcb5317a2 100644
--- a/src/wayland/meta-wayland-dnd-surface.c
+++ b/src/wayland/meta-wayland-dnd-surface.c
@@ -72,7 +72,7 @@ dnd_surface_find_logical_monitor (MetaWaylandActorSurface *actor_surface)
     meta_backend_get_cursor_renderer (backend);
   MetaMonitorManager *monitor_manager =
      meta_backend_get_monitor_manager (backend);
-  ClutterPoint pointer_pos;
+  graphene_point_t pointer_pos;
 
   pointer_pos = meta_cursor_renderer_get_position (cursor_renderer);
   return meta_monitor_manager_get_logical_monitor_at (monitor_manager,
diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c
index 751f6b9b9..4619af78d 100644
--- a/src/wayland/meta-wayland-pointer.c
+++ b/src/wayland/meta-wayland-pointer.c
@@ -926,7 +926,7 @@ meta_wayland_pointer_set_focus (MetaWaylandPointer *pointer,
   if (surface != NULL)
     {
       struct wl_client *client = wl_resource_get_client (surface->resource);
-      ClutterPoint pos;
+      graphene_point_t pos;
 
       pointer->focus_surface = surface;
 
@@ -1039,7 +1039,7 @@ meta_wayland_pointer_get_relative_coordinates (MetaWaylandPointer *pointer,
                                               wl_fixed_t         *sy)
 {
   float xf = 0.0f, yf = 0.0f;
-  ClutterPoint pos;
+  graphene_point_t pos;
 
   clutter_input_device_get_coords (pointer->device, NULL, &pos);
   meta_wayland_surface_get_relative_coordinates (surface, pos.x, pos.y, &xf, &yf);
diff --git a/src/wayland/meta-xwayland-dnd.c b/src/wayland/meta-xwayland-dnd.c
index 3ad58e4d2..c01402317 100644
--- a/src/wayland/meta-xwayland-dnd.c
+++ b/src/wayland/meta-xwayland-dnd.c
@@ -519,7 +519,7 @@ meta_x11_drag_dest_update (MetaWaylandDataDevice *data_device,
   MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
   MetaXWaylandDnd *dnd = compositor->xwayland_manager.dnd;
   MetaWaylandSeat *seat = compositor->seat;
-  ClutterPoint pos;
+  graphene_point_t pos;
 
   clutter_input_device_get_coords (seat->pointer->device, NULL, &pos);
   xdnd_send_position (dnd, dnd->dnd_dest,
@@ -602,7 +602,7 @@ pick_drop_surface (MetaWaylandCompositor *compositor,
 {
   MetaDisplay *display = meta_get_display ();
   MetaWindow *focus_window = NULL;
-  ClutterPoint pos;
+  graphene_point_t pos;
 
   clutter_event_get_coords (event, &pos.x, &pos.y);
   focus_window = meta_stack_get_default_focus_window_at_point (display->stack,
@@ -793,7 +793,7 @@ meta_xwayland_dnd_handle_client_message (MetaWaylandCompositor *compositor,
       else if (event->message_type == xdnd_atoms[ATOM_DND_POSITION])
         {
           ClutterEvent *motion;
-          ClutterPoint pos;
+          graphene_point_t pos;
           uint32_t action = 0;
 
           dnd->client_message_timestamp = event->data.l[3];


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]