mirror of
https://github.com/brl/mutter.git
synced 2025-02-02 14:53:03 +00:00
2.0: Remove ClutterGeometry
This commit is contained in:
parent
0724b3fb91
commit
0b03a4cb0a
@ -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
|
||||
*/
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
*
|
||||
* <warning>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.</warning>
|
||||
*
|
||||
* 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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
<SUBSECTION>
|
||||
clutter_geometry_union
|
||||
clutter_geometry_intersects
|
||||
|
||||
<SUBSECTION Standard>
|
||||
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
|
||||
<SUBSECTION Private>
|
||||
clutter_actor_box_get_type
|
||||
clutter_geometry_get_type
|
||||
clutter_knot_get_type
|
||||
clutter_matrix_get_type
|
||||
clutter_paint_volume_get_type
|
||||
|
Loading…
x
Reference in New Issue
Block a user