Replace ClutterSize by graphene_size_t

https://gitlab.gnome.org/GNOME/mutter/merge_requests/458
This commit is contained in:
Georges Basile Stavracas Neto 2019-02-20 11:27:00 -03:00
parent a5d0cfe8fb
commit cd293f764e
8 changed files with 51 additions and 219 deletions

View File

@ -173,8 +173,8 @@ struct _ClutterLayoutInfo
guint x_expand : 1;
guint y_expand : 1;
ClutterSize minimum;
ClutterSize natural;
graphene_size_t minimum;
graphene_size_t natural;
};
const ClutterLayoutInfo * _clutter_actor_get_layout_info_or_defaults (ClutterActor *self);

View File

@ -5153,7 +5153,7 @@ clutter_actor_set_property (GObject *object,
case PROP_SIZE:
{
const ClutterSize *size = g_value_get_boxed (value);
const graphene_size_t *size = g_value_get_boxed (value);
if (size != NULL)
clutter_actor_set_size (actor, size->width, size->height);
@ -5507,9 +5507,9 @@ clutter_actor_get_property (GObject *object,
case PROP_SIZE:
{
ClutterSize size;
graphene_size_t size;
clutter_size_init (&size,
graphene_size_init (&size,
clutter_actor_get_width (actor),
clutter_actor_get_height (actor));
g_value_set_boxed (value, &size);
@ -6559,7 +6559,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
g_param_spec_boxed ("size",
P_("Size"),
P_("The size of the actor"),
CLUTTER_TYPE_SIZE,
GRAPHENE_TYPE_SIZE,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS |
CLUTTER_PARAM_ANIMATABLE);
@ -10845,7 +10845,7 @@ clutter_actor_set_height_internal (ClutterActor *self,
static void
clutter_actor_set_size_internal (ClutterActor *self,
const ClutterSize *size)
const graphene_size_t *size)
{
if (size != NULL)
{
@ -10881,11 +10881,11 @@ clutter_actor_set_size (ClutterActor *self,
gfloat width,
gfloat height)
{
ClutterSize new_size;
graphene_size_t new_size;
g_return_if_fail (CLUTTER_IS_ACTOR (self));
clutter_size_init (&new_size, width, height);
graphene_size_init (&new_size, width, height);
/* minor optimization: if we don't have a duration then we can
* skip the get_size() below, to avoid the chance of going through
@ -10904,9 +10904,9 @@ clutter_actor_set_size (ClutterActor *self,
}
else
{
ClutterSize cur_size;
graphene_size_t cur_size;
clutter_size_init (&cur_size,
graphene_size_init (&cur_size,
clutter_actor_get_width (self),
clutter_actor_get_height (self));
@ -18382,8 +18382,8 @@ static const ClutterLayoutInfo default_layout_info = {
CLUTTER_ACTOR_ALIGN_FILL, /* x-align */
CLUTTER_ACTOR_ALIGN_FILL, /* y-align */
FALSE, FALSE, /* expand */
CLUTTER_SIZE_INIT_ZERO, /* minimum */
CLUTTER_SIZE_INIT_ZERO, /* natural */
GRAPHENE_SIZE_INIT_ZERO, /* minimum */
GRAPHENE_SIZE_INIT_ZERO, /* natural */
};
static void

View File

@ -95,7 +95,6 @@ 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)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterSize, clutter_size_free)
#endif /* __GI_SCANNER__ */

View File

@ -462,133 +462,6 @@ clutter_point_inside_quadrilateral (const ClutterPoint *point,
/*
* ClutterSize
*/
/**
* clutter_size_alloc: (constructor)
*
* Allocates a new #ClutterSize.
*
* Return value: (transfer full): the newly allocated #ClutterSize.
* Use clutter_size_free() to free its resources.
*
* Since: 1.12
*/
ClutterSize *
clutter_size_alloc (void)
{
return g_slice_new0 (ClutterSize);
}
/**
* clutter_size_init:
* @size: a #ClutterSize
* @width: the width
* @height: the height
*
* Initializes a #ClutterSize with the given dimensions.
*
* Return value: (transfer none): the initialized #ClutterSize
*
* Since: 1.12
*/
ClutterSize *
clutter_size_init (ClutterSize *size,
float width,
float height)
{
g_return_val_if_fail (size != NULL, NULL);
size->width = width;
size->height = height;
return size;
}
/**
* clutter_size_copy:
* @size: a #ClutterSize
*
* Creates a new #ClutterSize and duplicates @size.
*
* Return value: (transfer full): the newly allocated #ClutterSize.
* Use clutter_size_free() to free its resources.
*
* Since: 1.12
*/
ClutterSize *
clutter_size_copy (const ClutterSize *size)
{
return g_slice_dup (ClutterSize, size);
}
/**
* clutter_size_free:
* @size: a #ClutterSize
*
* Frees the resources allocated for @size.
*
* Since: 1.12
*/
void
clutter_size_free (ClutterSize *size)
{
if (size != NULL)
g_slice_free (ClutterSize, size);
}
/**
* clutter_size_equals:
* @a: a #ClutterSize to compare
* @b: a #ClutterSize to compare
*
* Compares two #ClutterSize for equality.
*
* Return value: %TRUE if the two #ClutterSize are equal
*
* Since: 1.12
*/
gboolean
clutter_size_equals (const ClutterSize *a,
const ClutterSize *b)
{
if (a == b)
return TRUE;
if (a == NULL || b == NULL)
return FALSE;
return fabsf (a->width - b->width) < FLOAT_EPSILON &&
fabsf (a->height - b->height) < FLOAT_EPSILON;
}
static gboolean
clutter_size_progress (const GValue *a,
const GValue *b,
gdouble progress,
GValue *retval)
{
const ClutterSize *as = g_value_get_boxed (a);
const ClutterSize *bs = g_value_get_boxed (b);
ClutterSize res = CLUTTER_SIZE_INIT (0, 0);
res.width = as->width + (bs->width - as->width) * progress;
res.height = as->height + (bs->height - as->height) * progress;
g_value_set_boxed (retval, &res);
return TRUE;
}
G_DEFINE_BOXED_TYPE_WITH_CODE (ClutterSize, clutter_size,
clutter_size_copy,
clutter_size_free,
CLUTTER_REGISTER_INTERVAL_PROGRESS (clutter_size_progress))
/*
* ClutterRect
*/
@ -773,7 +646,7 @@ clutter_rect_equals (ClutterRect *a,
clutter_rect_normalize_internal (b);
return clutter_point_equals (&a->origin, &b->origin) &&
clutter_size_equals (&a->size, &b->size);
graphene_size_equal (&a->size, &b->size);
}
/**

View File

@ -46,9 +46,28 @@ graphene_point3d_progress (const GValue *a,
return TRUE;
}
static gboolean
graphene_size_progress (const GValue *a,
const GValue *b,
double progress,
GValue *retval)
{
const graphene_size_t *as = g_value_get_boxed (a);
const graphene_size_t *bs = g_value_get_boxed (b);
graphene_size_t res;
graphene_size_interpolate (as, bs, progress, &res);
g_value_set_boxed (retval, &res);
return TRUE;
}
void
clutter_graphene_init (void)
{
clutter_interval_register_progress_func (GRAPHENE_TYPE_POINT3D,
graphene_point3d_progress);
clutter_interval_register_progress_func (GRAPHENE_TYPE_SIZE,
graphene_size_progress);
}

View File

@ -547,7 +547,7 @@ _clutter_script_parse_point (ClutterScript *script,
static gboolean
parse_size_from_array (JsonArray *array,
ClutterSize *size)
graphene_size_t *size)
{
if (json_array_get_length (array) != 2)
return FALSE;
@ -560,7 +560,7 @@ parse_size_from_array (JsonArray *array,
static gboolean
parse_size_from_object (JsonObject *object,
ClutterSize *size)
graphene_size_t *size)
{
if (json_object_has_member (object, "width"))
size->width = json_object_get_double_member (object, "width");
@ -578,7 +578,7 @@ parse_size_from_object (JsonObject *object,
gboolean
_clutter_script_parse_size (ClutterScript *script,
JsonNode *node,
ClutterSize *size)
graphene_size_t *size)
{
g_return_val_if_fail (CLUTTER_IS_SCRIPT (script), FALSE);
g_return_val_if_fail (node != NULL, FALSE);
@ -1374,9 +1374,9 @@ _clutter_script_parse_node (ClutterScript *script,
return TRUE;
}
}
else if (p_type == CLUTTER_TYPE_SIZE)
else if (p_type == GRAPHENE_TYPE_SIZE)
{
ClutterSize size = CLUTTER_SIZE_INIT_ZERO;
graphene_size_t size = GRAPHENE_SIZE_INIT_ZERO;
if (_clutter_script_parse_size (script, node, &size))
{
@ -1451,9 +1451,9 @@ _clutter_script_parse_node (ClutterScript *script,
return TRUE;
}
}
else if (G_VALUE_HOLDS (value, CLUTTER_TYPE_SIZE))
else if (G_VALUE_HOLDS (value, GRAPHENE_TYPE_SIZE))
{
ClutterSize size = CLUTTER_SIZE_INIT_ZERO;
graphene_size_t size = GRAPHENE_SIZE_INIT_ZERO;
if (_clutter_script_parse_size (script, node, &size))
{

View File

@ -135,7 +135,7 @@ gboolean _clutter_script_parse_point (ClutterScript *script,
ClutterPoint *point);
gboolean _clutter_script_parse_size (ClutterScript *script,
JsonNode *node,
ClutterSize *size);
graphene_size_t *size);
gboolean _clutter_script_parse_translatable_string (ClutterScript *script,
JsonNode *node,

View File

@ -45,7 +45,6 @@ G_BEGIN_DECLS
#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_SIZE (clutter_size_get_type ())
#define CLUTTER_TYPE_RECT (clutter_rect_get_type ())
typedef struct _ClutterActor ClutterActor;
@ -85,7 +84,6 @@ typedef struct _ClutterMargin ClutterMargin;
typedef struct _ClutterPerspective ClutterPerspective;
typedef struct _ClutterPoint ClutterPoint;
typedef struct _ClutterRect ClutterRect;
typedef struct _ClutterSize ClutterSize;
typedef struct _ClutterAlpha ClutterAlpha;
typedef struct _ClutterAnimation ClutterAnimation;
@ -202,63 +200,6 @@ CLUTTER_EXPORT
gboolean clutter_point_inside_quadrilateral (const ClutterPoint *point,
const ClutterPoint *vertices);
/**
* ClutterSize:
* @width: the width, in pixels
* @height: the height, in pixels
*
* A size, in 2D space.
*
* Since: 1.12
*/
struct _ClutterSize
{
float width;
float height;
};
/**
* CLUTTER_SIZE_INIT:
* @width: the width
* @height: the height
*
* A simple macro for initializing a #ClutterSize when declaring it, e.g.:
*
* |[
* ClutterSize s = CLUTTER_SIZE_INIT (200, 200);
* ]|
*
* Since: 1.12
*/
#define CLUTTER_SIZE_INIT(width,height) { (width), (height) }
/**
* CLUTTER_SIZE_INIT_ZERO:
*
* A simple macro for initializing a #ClutterSize to (0, 0) when
* declaring it.
*
* Since: 1.12
*/
#define CLUTTER_SIZE_INIT_ZERO CLUTTER_SIZE_INIT (0.f, 0.f)
CLUTTER_EXPORT
GType clutter_size_get_type (void) G_GNUC_CONST;
CLUTTER_EXPORT
ClutterSize * clutter_size_alloc (void);
CLUTTER_EXPORT
ClutterSize * clutter_size_init (ClutterSize *size,
float width,
float height);
CLUTTER_EXPORT
ClutterSize * clutter_size_copy (const ClutterSize *size);
CLUTTER_EXPORT
void clutter_size_free (ClutterSize *size);
CLUTTER_EXPORT
gboolean clutter_size_equals (const ClutterSize *a,
const ClutterSize *b);
/**
* ClutterRect:
* @origin: the origin of the rectangle
@ -283,7 +224,7 @@ gboolean clutter_size_equals (const ClutterSize *a,
struct _ClutterRect
{
ClutterPoint origin;
ClutterSize size;
graphene_size_t size;
};
/**