[Automatic fixed-to-float.sh change] Applies a number fixed to float patches
To deal with all the corner cases that couldn't be scripted a number of patches were written for the remaining 10% of the effort. Note: again no API changes were made in Clutter, only in Cogl.
This commit is contained in:
@ -190,17 +190,13 @@ actor_apply_knot_foreach (ClutterBehaviour *behave,
|
||||
static inline float
|
||||
clamp_angle (float a)
|
||||
{
|
||||
float a1, a2;
|
||||
gint rounds;
|
||||
|
||||
/* Need to add the 256 offset here, since the user space 0 maps to our
|
||||
* -256
|
||||
*/
|
||||
rounds = (a + 256) / 1024;
|
||||
a1 = rounds * 1024;
|
||||
a2 = a - a1;
|
||||
rounds = a / 360;
|
||||
if (a < 0)
|
||||
rounds--;
|
||||
|
||||
return a2;
|
||||
return a - 360 * rounds;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -218,11 +214,11 @@ clutter_behaviour_ellipse_alpha_notify (ClutterBehaviour *behave,
|
||||
|
||||
if (priv->direction == CLUTTER_ROTATE_CW && start >= end)
|
||||
{
|
||||
end += 1024;
|
||||
end += 360;
|
||||
}
|
||||
else if (priv->direction == CLUTTER_ROTATE_CCW && start <= end)
|
||||
{
|
||||
end -= 1024;
|
||||
end -= 360;
|
||||
}
|
||||
|
||||
angle = (end - start) * alpha / CLUTTER_ALPHA_MAX_ALPHA + start;
|
||||
@ -247,30 +243,25 @@ clutter_behaviour_ellipse_set_property (GObject *gobject,
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_ANGLE_START:
|
||||
priv->angle_start =
|
||||
COGL_ANGLE_FROM_DEG (g_value_get_double (value)) - 256;
|
||||
priv->angle_start = g_value_get_double (value);
|
||||
break;
|
||||
case PROP_ANGLE_END:
|
||||
priv->angle_end =
|
||||
COGL_ANGLE_FROM_DEG (g_value_get_double (value)) - 256;
|
||||
priv->angle_end = g_value_get_double (value);
|
||||
break;
|
||||
case PROP_ANGLE_TILT_X:
|
||||
priv->angle_tilt_x =
|
||||
COGL_ANGLE_FROM_DEG (g_value_get_double (value));
|
||||
priv->angle_tilt_x = g_value_get_double (value);
|
||||
break;
|
||||
case PROP_ANGLE_TILT_Y:
|
||||
priv->angle_tilt_y =
|
||||
COGL_ANGLE_FROM_DEG (g_value_get_double (value));
|
||||
priv->angle_tilt_y = g_value_get_double (value);
|
||||
break;
|
||||
case PROP_ANGLE_TILT_Z:
|
||||
priv->angle_tilt_z =
|
||||
COGL_ANGLE_FROM_DEG (g_value_get_double (value));
|
||||
priv->angle_tilt_z = g_value_get_double (value);
|
||||
break;
|
||||
case PROP_WIDTH:
|
||||
priv->a = g_value_get_int (value) >> 1;
|
||||
priv->a = g_value_get_int (value) / 2;
|
||||
break;
|
||||
case PROP_HEIGHT:
|
||||
priv->b = g_value_get_int (value) >> 1;
|
||||
priv->b = g_value_get_int (value) / 2;
|
||||
break;
|
||||
case PROP_CENTER:
|
||||
{
|
||||
@ -301,30 +292,25 @@ clutter_behaviour_ellipse_get_property (GObject *gobject,
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_ANGLE_START:
|
||||
g_value_set_double (value,
|
||||
COGL_ANGLE_TO_DEG (priv->angle_start + 256));
|
||||
g_value_set_double (value, priv->angle_start);
|
||||
break;
|
||||
case PROP_ANGLE_END:
|
||||
g_value_set_double (value,
|
||||
COGL_ANGLE_TO_DEG (priv->angle_end + 256));
|
||||
g_value_set_double (value, priv->angle_end);
|
||||
break;
|
||||
case PROP_ANGLE_TILT_X:
|
||||
g_value_set_double (value,
|
||||
COGL_ANGLE_TO_DEG (priv->angle_tilt_x));
|
||||
g_value_set_double (value, priv->angle_tilt_x);
|
||||
break;
|
||||
case PROP_ANGLE_TILT_Y:
|
||||
g_value_set_double (value,
|
||||
COGL_ANGLE_TO_DEG (priv->angle_tilt_y));
|
||||
g_value_set_double (value, priv->angle_tilt_y);
|
||||
break;
|
||||
case PROP_ANGLE_TILT_Z:
|
||||
g_value_set_double (value,
|
||||
COGL_ANGLE_TO_DEG (priv->angle_tilt_z));
|
||||
g_value_set_double (value, priv->angle_tilt_z);
|
||||
break;
|
||||
case PROP_WIDTH:
|
||||
g_value_set_int (value, (priv->a << 1));
|
||||
g_value_set_int (value, (priv->a * 2));
|
||||
break;
|
||||
case PROP_HEIGHT:
|
||||
g_value_set_int (value, (priv->b << 1));
|
||||
g_value_set_int (value, (priv->b * 2));
|
||||
break;
|
||||
case PROP_CENTER:
|
||||
g_value_set_boxed (value, &priv->center);
|
||||
@ -513,12 +499,8 @@ clutter_behaviour_ellipse_init (ClutterBehaviourEllipse * self)
|
||||
|
||||
priv->direction = CLUTTER_ROTATE_CW;
|
||||
|
||||
/* The inital values have to reflect the 90 degree offset between the normal
|
||||
* mathematical space and the clutter clock-based space; the default end
|
||||
* value of 360 is clamped to 0.
|
||||
*/
|
||||
priv->angle_start = -256;
|
||||
priv->angle_end = -256;
|
||||
priv->angle_start = 0;
|
||||
priv->angle_end = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -611,8 +593,8 @@ clutter_behaviour_ellipse_newx (ClutterAlpha * alpha,
|
||||
"width", width,
|
||||
"height", height,
|
||||
"direction", direction,
|
||||
"angle-start", COGL_ANGLE_FROM_DEGX (start),
|
||||
"angle-end", COGL_ANGLE_FROM_DEGX (end),
|
||||
"angle-start", (double)CLUTTER_FIXED_TO_FLOAT (start),
|
||||
"angle-end", (double)CLUTTER_FIXED_TO_FLOAT (end),
|
||||
NULL);
|
||||
}
|
||||
|
||||
@ -695,9 +677,9 @@ clutter_behaviour_ellipse_set_width (ClutterBehaviourEllipse * self,
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
if (priv->a != width >> 1)
|
||||
if (priv->a != width / 2)
|
||||
{
|
||||
priv->a = width >> 1;
|
||||
priv->a = width / 2;
|
||||
|
||||
g_object_notify (G_OBJECT (self), "width");
|
||||
}
|
||||
@ -718,7 +700,7 @@ clutter_behaviour_ellipse_get_width (ClutterBehaviourEllipse *self)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0);
|
||||
|
||||
return self->priv->a << 1;
|
||||
return self->priv->a * 2;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -740,9 +722,9 @@ clutter_behaviour_ellipse_set_height (ClutterBehaviourEllipse *self,
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
if (priv->b != height >> 1)
|
||||
if (priv->b != height / 2)
|
||||
{
|
||||
priv->b = height >> 1;
|
||||
priv->b = height / 2;
|
||||
|
||||
g_object_notify (G_OBJECT (self), "height");
|
||||
}
|
||||
@ -763,7 +745,7 @@ clutter_behaviour_ellipse_get_height (ClutterBehaviourEllipse *self)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0);
|
||||
|
||||
return self->priv->b << 1;
|
||||
return self->priv->b * 2;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -780,10 +762,11 @@ void
|
||||
clutter_behaviour_ellipse_set_angle_start (ClutterBehaviourEllipse *self,
|
||||
gdouble angle_start)
|
||||
{
|
||||
ClutterFixed new_angle = CLUTTER_FLOAT_TO_FIXED (angle_start);
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
clutter_behaviour_ellipse_set_angle_startx (self,
|
||||
CLUTTER_FLOAT_TO_FIXED (angle_start));
|
||||
clutter_behaviour_ellipse_set_angle_startx (self, new_angle);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -805,7 +788,7 @@ clutter_behaviour_ellipse_set_angle_startx (ClutterBehaviourEllipse *self,
|
||||
float new_angle;
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
new_angle = clamp_angle (COGL_ANGLE_FROM_DEGX (angle_start) - 256);
|
||||
new_angle = clamp_angle (CLUTTER_FIXED_TO_FLOAT (angle_start));
|
||||
|
||||
priv = self->priv;
|
||||
if (priv->angle_start != new_angle)
|
||||
@ -830,7 +813,7 @@ clutter_behaviour_ellipse_get_angle_start (ClutterBehaviourEllipse *self)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0.0);
|
||||
|
||||
return COGL_ANGLE_TO_DEG (self->priv->angle_start + 256);
|
||||
return (double)self->priv->angle_start;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -848,7 +831,7 @@ clutter_behaviour_ellipse_get_angle_startx (ClutterBehaviourEllipse *self)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0);
|
||||
|
||||
return COGL_ANGLE_TO_DEGX (self->priv->angle_start);
|
||||
return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_start);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -865,10 +848,11 @@ void
|
||||
clutter_behaviour_ellipse_set_angle_end (ClutterBehaviourEllipse *self,
|
||||
gdouble angle_end)
|
||||
{
|
||||
ClutterFixed new_angle = CLUTTER_FLOAT_TO_FIXED (angle_end);
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
clutter_behaviour_ellipse_set_angle_endx (self,
|
||||
CLUTTER_FLOAT_TO_FIXED (angle_end));
|
||||
clutter_behaviour_ellipse_set_angle_endx (self, new_angle);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -891,7 +875,7 @@ clutter_behaviour_ellipse_set_angle_endx (ClutterBehaviourEllipse *self,
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
new_angle = clamp_angle (COGL_ANGLE_FROM_DEGX (angle_end) - 256);
|
||||
new_angle = clamp_angle (CLUTTER_FIXED_TO_FLOAT (angle_end));
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
@ -918,7 +902,7 @@ clutter_behaviour_ellipse_get_angle_end (ClutterBehaviourEllipse *self)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0.0);
|
||||
|
||||
return COGL_ANGLE_TO_DEG (self->priv->angle_end + 256);
|
||||
return self->priv->angle_end;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -936,7 +920,7 @@ clutter_behaviour_ellipse_get_angle_endx (ClutterBehaviourEllipse *self)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0);
|
||||
|
||||
return COGL_ANGLE_TO_DEGX (self->priv->angle_end);
|
||||
return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_end);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -955,11 +939,11 @@ clutter_behaviour_ellipse_set_angle_tilt (ClutterBehaviourEllipse *self,
|
||||
ClutterRotateAxis axis,
|
||||
gdouble angle_tilt)
|
||||
{
|
||||
ClutterFixed new_angle = CLUTTER_FLOAT_TO_FIXED (angle_tilt);
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
clutter_behaviour_ellipse_set_angle_tiltx (self,
|
||||
axis,
|
||||
CLUTTER_FLOAT_TO_FIXED (angle_tilt));
|
||||
clutter_behaviour_ellipse_set_angle_tiltx (self, axis, new_angle);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -983,7 +967,7 @@ clutter_behaviour_ellipse_set_angle_tiltx (ClutterBehaviourEllipse *self,
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
new_angle = COGL_ANGLE_FROM_DEGX (angle_tilt);
|
||||
new_angle = CLUTTER_FIXED_TO_FLOAT (angle_tilt);
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
@ -1038,11 +1022,11 @@ clutter_behaviour_ellipse_get_angle_tilt (ClutterBehaviourEllipse *self,
|
||||
switch (axis)
|
||||
{
|
||||
case CLUTTER_X_AXIS:
|
||||
return COGL_ANGLE_TO_DEG (self->priv->angle_tilt_x);
|
||||
return self->priv->angle_tilt_x;
|
||||
case CLUTTER_Y_AXIS:
|
||||
return COGL_ANGLE_TO_DEG (self->priv->angle_tilt_y);
|
||||
return self->priv->angle_tilt_y;
|
||||
case CLUTTER_Z_AXIS:
|
||||
return COGL_ANGLE_TO_DEG (self->priv->angle_tilt_z);
|
||||
return self->priv->angle_tilt_z;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1068,11 +1052,11 @@ clutter_behaviour_ellipse_get_angle_tiltx (ClutterBehaviourEllipse *self,
|
||||
switch (axis)
|
||||
{
|
||||
case CLUTTER_X_AXIS:
|
||||
return COGL_ANGLE_TO_DEGX (self->priv->angle_tilt_x);
|
||||
return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_tilt_x);
|
||||
case CLUTTER_Y_AXIS:
|
||||
return COGL_ANGLE_TO_DEGX (self->priv->angle_tilt_y);
|
||||
return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_tilt_y);
|
||||
case CLUTTER_Z_AXIS:
|
||||
return COGL_ANGLE_TO_DEGX (self->priv->angle_tilt_z);
|
||||
return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_tilt_z);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1100,9 +1084,9 @@ clutter_behaviour_ellipse_set_tilt (ClutterBehaviourEllipse *self,
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
new_angle_x = COGL_ANGLE_FROM_DEG (angle_tilt_x);
|
||||
new_angle_y = COGL_ANGLE_FROM_DEG (angle_tilt_y);
|
||||
new_angle_z = COGL_ANGLE_FROM_DEG (angle_tilt_z);
|
||||
new_angle_x = (float)angle_tilt_x;
|
||||
new_angle_y = (float)angle_tilt_y;
|
||||
new_angle_z = (float)angle_tilt_z;
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
@ -1154,9 +1138,9 @@ clutter_behaviour_ellipse_set_tiltx (ClutterBehaviourEllipse *self,
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
|
||||
|
||||
new_angle_x = COGL_ANGLE_FROM_DEGX (angle_tilt_x);
|
||||
new_angle_y = COGL_ANGLE_FROM_DEGX (angle_tilt_y);
|
||||
new_angle_z = COGL_ANGLE_FROM_DEGX (angle_tilt_z);
|
||||
new_angle_x = CLUTTER_FIXED_TO_FLOAT (angle_tilt_x);
|
||||
new_angle_y = CLUTTER_FIXED_TO_FLOAT (angle_tilt_y);
|
||||
new_angle_z = CLUTTER_FIXED_TO_FLOAT (angle_tilt_z);
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
@ -1210,13 +1194,13 @@ clutter_behaviour_ellipse_get_tilt (ClutterBehaviourEllipse *self,
|
||||
priv = self->priv;
|
||||
|
||||
if (angle_tilt_x)
|
||||
*angle_tilt_x = COGL_ANGLE_TO_DEG (priv->angle_tilt_x);
|
||||
*angle_tilt_x = priv->angle_tilt_x;
|
||||
|
||||
if (angle_tilt_y)
|
||||
*angle_tilt_y = COGL_ANGLE_TO_DEG (priv->angle_tilt_y);
|
||||
*angle_tilt_y = priv->angle_tilt_y;
|
||||
|
||||
if (angle_tilt_z)
|
||||
*angle_tilt_z = COGL_ANGLE_TO_DEG (priv->angle_tilt_z);
|
||||
*angle_tilt_z = priv->angle_tilt_z;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1246,13 +1230,13 @@ clutter_behaviour_ellipse_get_tiltx (ClutterBehaviourEllipse *self,
|
||||
priv = self->priv;
|
||||
|
||||
if (angle_tilt_x)
|
||||
*angle_tilt_x = COGL_ANGLE_TO_DEGX (priv->angle_tilt_x);
|
||||
*angle_tilt_x = priv->angle_tilt_x;
|
||||
|
||||
if (angle_tilt_y)
|
||||
*angle_tilt_y = COGL_ANGLE_TO_DEGX (priv->angle_tilt_y);
|
||||
*angle_tilt_y = priv->angle_tilt_y;
|
||||
|
||||
if (angle_tilt_z)
|
||||
*angle_tilt_z = COGL_ANGLE_TO_DEGX (priv->angle_tilt_z);
|
||||
*angle_tilt_z = priv->angle_tilt_z;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user