From 0b03a4cb0a1ab5eaf314c700feae63cbe4b88767 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Sat, 30 Mar 2013 00:24:17 +0000 Subject: [PATCH] 2.0: Remove ClutterGeometry --- clutter/clutter-base-types.c | 108 --------------------- clutter/clutter-script-parser.c | 72 +++++++------- clutter/clutter-script-private.h | 4 +- clutter/clutter-types.h | 36 ------- clutter/clutter.symbols | 3 - doc/reference/clutter/clutter-sections.txt | 7 -- 6 files changed, 38 insertions(+), 192 deletions(-) diff --git a/clutter/clutter-base-types.c b/clutter/clutter-base-types.c index 53d57b29e..2bc9b57f3 100644 --- a/clutter/clutter-base-types.c +++ b/clutter/clutter-base-types.c @@ -43,114 +43,6 @@ -/* - * ClutterGeometry - */ - -static ClutterGeometry* -clutter_geometry_copy (const ClutterGeometry *geometry) -{ - return g_slice_dup (ClutterGeometry, geometry); -} - -static void -clutter_geometry_free (ClutterGeometry *geometry) -{ - if (G_LIKELY (geometry != NULL)) - g_slice_free (ClutterGeometry, geometry); -} - -/** - * clutter_geometry_union: - * @geometry_a: a #ClutterGeometry - * @geometry_b: another #ClutterGeometry - * @result: (out): location to store the result - * - * Find the union of two rectangles represented as #ClutterGeometry. - * - * Since: 1.4 - * - * Deprecated: 1.16: Use #ClutterRect and clutter_rect_union() - */ -void -clutter_geometry_union (const ClutterGeometry *geometry_a, - const ClutterGeometry *geometry_b, - ClutterGeometry *result) -{ - /* We don't try to handle rectangles that can't be represented - * as a signed integer box */ - gint x_1 = MIN (geometry_a->x, geometry_b->x); - gint y_1 = MIN (geometry_a->y, geometry_b->y); - gint x_2 = MAX (geometry_a->x + (gint)geometry_a->width, - geometry_b->x + (gint)geometry_b->width); - gint y_2 = MAX (geometry_a->y + (gint)geometry_a->height, - geometry_b->y + (gint)geometry_b->height); - result->x = x_1; - result->y = y_1; - result->width = x_2 - x_1; - result->height = y_2 - y_1; -} - -/** - * clutter_geometry_intersects: - * @geometry0: The first geometry to test - * @geometry1: The second geometry to test - * - * Determines if @geometry0 and geometry1 intersect returning %TRUE if - * they do else %FALSE. - * - * Return value: %TRUE of @geometry0 and geometry1 intersect else - * %FALSE. - * - * Since: 1.4 - * - * Deprecated: 1.16: Use #ClutterRect and clutter_rect_intersection() - */ -gboolean -clutter_geometry_intersects (const ClutterGeometry *geometry0, - const ClutterGeometry *geometry1) -{ - if (geometry1->x >= (geometry0->x + (gint)geometry0->width) || - geometry1->y >= (geometry0->y + (gint)geometry0->height) || - (geometry1->x + (gint)geometry1->width) <= geometry0->x || - (geometry1->y + (gint)geometry1->height) <= geometry0->y) - return FALSE; - else - return TRUE; -} - -static gboolean -clutter_geometry_progress (const GValue *a, - const GValue *b, - gdouble progress, - GValue *retval) -{ - const ClutterGeometry *a_geom = g_value_get_boxed (a); - const ClutterGeometry *b_geom = g_value_get_boxed (b); - ClutterGeometry res = { 0, }; - gint a_width = a_geom->width; - gint b_width = b_geom->width; - gint a_height = a_geom->height; - gint b_height = b_geom->height; - - res.x = a_geom->x + (b_geom->x - a_geom->x) * progress; - res.y = a_geom->y + (b_geom->y - a_geom->y) * progress; - - res.width = a_width + (b_width - a_width) * progress; - res.height = a_height + (b_height - a_height) * progress; - - g_value_set_boxed (retval, &res); - - return TRUE; -} - -G_DEFINE_BOXED_TYPE_WITH_CODE (ClutterGeometry, clutter_geometry, - clutter_geometry_copy, - clutter_geometry_free, - CLUTTER_REGISTER_INTERVAL_PROGRESS (clutter_geometry_progress)); - - - /* * ClutterVertices */ diff --git a/clutter/clutter-script-parser.c b/clutter/clutter-script-parser.c index 4a52a0269..0929c6166 100644 --- a/clutter/clutter-script-parser.c +++ b/clutter/clutter-script-parser.c @@ -348,63 +348,63 @@ _clutter_script_parse_knot (ClutterScript *script, } static gboolean -parse_geometry_from_array (JsonArray *array, - ClutterGeometry *geometry) +parse_rect_from_array (JsonArray *array, + ClutterRect *rect) { if (json_array_get_length (array) != 4) return FALSE; - geometry->x = json_array_get_int_element (array, 0); - geometry->y = json_array_get_int_element (array, 1); - geometry->width = json_array_get_int_element (array, 2); - geometry->height = json_array_get_int_element (array, 3); + rect->origin.x = json_array_get_double_element (array, 0); + rect->origin.y = json_array_get_double_element (array, 1); + rect->size.width = json_array_get_double_element (array, 2); + rect->size.height = json_array_get_double_element (array, 3); return TRUE; } static gboolean -parse_geometry_from_object (JsonObject *object, - ClutterGeometry *geometry) +parse_rect_from_object (JsonObject *object, + ClutterRect *rect) { if (json_object_has_member (object, "x")) - geometry->x = json_object_get_int_member (object, "x"); + rect->origin.x = json_object_get_double_member (object, "x"); else - geometry->x = 0; + rect->origin.x = 0; if (json_object_has_member (object, "y")) - geometry->y = json_object_get_int_member (object, "y"); + rect->origin.y = json_object_get_double_member (object, "y"); else - geometry->y = 0; + rect->origin.y = 0; if (json_object_has_member (object, "width")) - geometry->width = json_object_get_int_member (object, "width"); + rect->size.width = json_object_get_double_member (object, "width"); else - geometry->width = 0; + rect->size.width = 0; if (json_object_has_member (object, "height")) - geometry->height = json_object_get_int_member (object, "height"); + rect->size.height = json_object_get_double_member (object, "height"); else - geometry->height = 0; + rect->size.height = 0; return TRUE; } gboolean -_clutter_script_parse_geometry (ClutterScript *script, - JsonNode *node, - ClutterGeometry *geometry) +_clutter_script_parse_rect (ClutterScript *script, + JsonNode *node, + ClutterRect *rect) { g_return_val_if_fail (CLUTTER_IS_SCRIPT (script), FALSE); g_return_val_if_fail (node != NULL, FALSE); - g_return_val_if_fail (geometry != NULL, FALSE); + g_return_val_if_fail (rect != NULL, FALSE); switch (JSON_NODE_TYPE (node)) { case JSON_NODE_ARRAY: - return parse_geometry_from_array (json_node_get_array (node), geometry); + return parse_rect_from_array (json_node_get_array (node), rect); case JSON_NODE_OBJECT: - return parse_geometry_from_object (json_node_get_object (node), geometry); + return parse_rect_from_object (json_node_get_object (node), rect); default: break; @@ -1089,21 +1089,21 @@ _clutter_script_parse_node (ClutterScript *script, return TRUE; } } - else if (p_type == CLUTTER_TYPE_GEOMETRY) + else if (p_type == CLUTTER_TYPE_RECT) { - ClutterGeometry geom = { 0, }; + ClutterRect rect = CLUTTER_RECT_INIT_ZERO; - /* geometry := { - * "x" : (int), - * "y" : (int), - * "width" : (int), - * "height" : (int) + /* rect := { + * "x" : (double), + * "y" : (double), + * "width" : (double), + * "height" : (double) * } */ - if (_clutter_script_parse_geometry (script, node, &geom)) + if (_clutter_script_parse_rect (script, node, &rect)) { - g_value_set_boxed (value, &geom); + g_value_set_boxed (value, &rect); return TRUE; } } @@ -1178,15 +1178,15 @@ _clutter_script_parse_node (ClutterScript *script, return TRUE; } } - else if (G_VALUE_HOLDS (value, CLUTTER_TYPE_GEOMETRY)) + else if (G_VALUE_HOLDS (value, CLUTTER_TYPE_RECT)) { - ClutterGeometry geom = { 0, }; + ClutterRect rect = CLUTTER_RECT_INIT_ZERO; - /* geometry := [ (int), (int), (int), (int) ] */ + /* rect := [ (double), (double), (double), (double) ] */ - if (_clutter_script_parse_geometry (script, node, &geom)) + if (_clutter_script_parse_rect (script, node, &rect)) { - g_value_set_boxed (value, &geom); + g_value_set_boxed (value, &rect); return TRUE; } } diff --git a/clutter/clutter-script-private.h b/clutter/clutter-script-private.h index b32ded186..7a6a6a9af 100644 --- a/clutter/clutter-script-private.h +++ b/clutter/clutter-script-private.h @@ -119,9 +119,9 @@ gboolean _clutter_script_flags_from_string (GType gtype, gboolean _clutter_script_parse_knot (ClutterScript *script, JsonNode *node, ClutterKnot *knot); -gboolean _clutter_script_parse_geometry (ClutterScript *script, +gboolean _clutter_script_parse_rect (ClutterScript *script, JsonNode *node, - ClutterGeometry *geometry); + ClutterRect *rect); gboolean _clutter_script_parse_color (ClutterScript *script, JsonNode *node, ClutterColor *color); diff --git a/clutter/clutter-types.h b/clutter/clutter-types.h index 9a66394e2..b71f60d27 100644 --- a/clutter/clutter-types.h +++ b/clutter/clutter-types.h @@ -37,7 +37,6 @@ G_BEGIN_DECLS #define CLUTTER_TYPE_ACTOR_BOX (clutter_actor_box_get_type ()) #define CLUTTER_TYPE_FOG (clutter_fog_get_type ()) -#define CLUTTER_TYPE_GEOMETRY (clutter_geometry_get_type ()) #define CLUTTER_TYPE_KNOT (clutter_knot_get_type ()) #define CLUTTER_TYPE_MARGIN (clutter_margin_get_type ()) #define CLUTTER_TYPE_MATRIX (clutter_matrix_get_type ()) @@ -78,7 +77,6 @@ typedef struct _ClutterPathNode ClutterPathNode; typedef struct _ClutterActorBox ClutterActorBox; typedef struct _ClutterColor ClutterColor; -typedef struct _ClutterGeometry ClutterGeometry; /* XXX:2.0 - remove */ typedef struct _ClutterKnot ClutterKnot; typedef struct _ClutterMargin ClutterMargin; typedef struct _ClutterPerspective ClutterPerspective; @@ -528,40 +526,6 @@ void clutter_actor_box_set_size (ClutterActorBox *box, gfloat width, gfloat height); -/** - * ClutterGeometry: - * @x: X coordinate of the top left corner of an actor - * @y: Y coordinate of the top left corner of an actor - * @width: width of an actor - * @height: height of an actor - * - * The rectangle containing an actor's bounding box, measured in pixels. - * - * You should not use #ClutterGeometry, or operate on its fields - * directly; you should use #cairo_rectangle_int_t or #ClutterRect if you - * need a rectangle type, depending on the precision required. - * - * Deprecated: 1.16 - */ -struct _ClutterGeometry -{ - /*< public >*/ - gint x; - gint y; - guint width; - guint height; -}; - -GType clutter_geometry_get_type (void) G_GNUC_CONST; - -CLUTTER_DEPRECATED_IN_1_16 -void clutter_geometry_union (const ClutterGeometry *geometry_a, - const ClutterGeometry *geometry_b, - ClutterGeometry *result); -CLUTTER_DEPRECATED_IN_1_16 -gboolean clutter_geometry_intersects (const ClutterGeometry *geometry0, - const ClutterGeometry *geometry1); - /** * ClutterKnot: * @x: X coordinate of the knot diff --git a/clutter/clutter.symbols b/clutter/clutter.symbols index 1ca0b9406..debcf2ec6 100644 --- a/clutter/clutter.symbols +++ b/clutter/clutter.symbols @@ -731,9 +731,6 @@ clutter_gdk_handle_event clutter_gdk_set_display clutter_gdk_set_stage_foreign #endif -clutter_geometry_get_type -clutter_geometry_intersects -clutter_geometry_union clutter_gesture_action_cancel clutter_gesture_action_get_device clutter_gesture_action_get_last_event diff --git a/doc/reference/clutter/clutter-sections.txt b/doc/reference/clutter/clutter-sections.txt index 1fd6837c6..03d0a7939 100644 --- a/doc/reference/clutter/clutter-sections.txt +++ b/doc/reference/clutter/clutter-sections.txt @@ -3235,7 +3235,6 @@ ClutterSize ClutterRect ClutterVertex ClutterActorBox -ClutterGeometry ClutterKnot ClutterPaintVolume ClutterMatrix @@ -3345,13 +3344,8 @@ clutter_knot_copy clutter_knot_free clutter_knot_equal - -clutter_geometry_union -clutter_geometry_intersects - CLUTTER_TYPE_ACTOR_BOX -CLUTTER_TYPE_GEOMETRY CLUTTER_TYPE_KNOT CLUTTER_TYPE_MATRIX CLUTTER_TYPE_PAINT_VOLUME @@ -3361,7 +3355,6 @@ CLUTTER_TYPE_SIZE CLUTTER_TYPE_VERTEX clutter_actor_box_get_type -clutter_geometry_get_type clutter_knot_get_type clutter_matrix_get_type clutter_paint_volume_get_type