From: Robert Bragg Date: Tue, 20 Jan 2009 16:20:54 +0000 (+0000) Subject: [Automatic fixed-to-float.sh change] Applies all scripted changes X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e82f6565909e1b0da9d4effff6261b8f7312869a;p=profile%2Fivi%2Fclutter.git [Automatic fixed-to-float.sh change] Applies all scripted changes This is the result of running a number of sed and perl scripts over the code to do 90% of the work in converting from 16.16 fixed to single precision floating point. Note: A pristine cogl-fixed.c has been maintained as a standalone utility API so that applications may still take advantage of fixed point if they desire for certain optimisations where lower precision may be acceptable. Note: no API changes were made in Clutter, only in Cogl. Overview of changes: - Within clutter/* all usage of the COGL_FIXED_ macros have been changed to use the CLUTTER_FIXED_ macros. - Within cogl/* all usage of the COGL_FIXED_ macros have been completly stripped and expanded into code that works with single precision floats instead. - Uses of cogl_fixed_* have been replaced with single precision math.h alternatives. - Uses of COGL_ANGLE_* and cogl_angle_* have been replaced so we use a float for angles and math.h replacements. --- diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index 2f39c4f..1e481cd 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -774,12 +774,12 @@ clutter_actor_real_allocate (ClutterActor *self, g_object_thaw_notify (G_OBJECT (self)); } -/* like ClutterVertex, but using CoglFixed and with a w component */ +/* like ClutterVertex, but using float and with a w component */ typedef struct { - CoglFixed x; - CoglFixed y; - CoglFixed z; - CoglFixed w; + float x; + float y; + float z; + float w; } fixed_vertex_t; /* copies a fixed vertex into a ClutterVertex */ @@ -816,25 +816,25 @@ mtx_transform (const ClutterFixed m[], /* We care lot about precision here, so have to use MUL instead * of FAST_MUL */ - vertex->x = COGL_FIXED_MUL (M (m, 0, 0), _x) - + COGL_FIXED_MUL (M (m, 0, 1), _y) - + COGL_FIXED_MUL (M (m, 0, 2), _z) - + COGL_FIXED_MUL (M (m, 0, 3), _w); - - vertex->y = COGL_FIXED_MUL (M (m, 1, 0), _x) - + COGL_FIXED_MUL (M (m, 1, 1), _y) - + COGL_FIXED_MUL (M (m, 1, 2), _z) - + COGL_FIXED_MUL (M (m, 1, 3), _w); - - vertex->z = COGL_FIXED_MUL (M (m, 2, 0), _x) - + COGL_FIXED_MUL (M (m, 2, 1), _y) - + COGL_FIXED_MUL (M (m, 2, 2), _z) - + COGL_FIXED_MUL (M (m, 2, 3), _w); - - vertex->w = COGL_FIXED_MUL (M (m, 3, 0), _x) - + COGL_FIXED_MUL (M (m, 3, 1), _y) - + COGL_FIXED_MUL (M (m, 3, 2), _z) - + COGL_FIXED_MUL (M (m, 3, 3), _w); + vertex->x = CLUTTER_FIXED_MUL (M (m, 0, 0), _x) + + CLUTTER_FIXED_MUL (M (m, 0, 1), _y) + + CLUTTER_FIXED_MUL (M (m, 0, 2), _z) + + CLUTTER_FIXED_MUL (M (m, 0, 3), _w); + + vertex->y = CLUTTER_FIXED_MUL (M (m, 1, 0), _x) + + CLUTTER_FIXED_MUL (M (m, 1, 1), _y) + + CLUTTER_FIXED_MUL (M (m, 1, 2), _z) + + CLUTTER_FIXED_MUL (M (m, 1, 3), _w); + + vertex->z = CLUTTER_FIXED_MUL (M (m, 2, 0), _x) + + CLUTTER_FIXED_MUL (M (m, 2, 1), _y) + + CLUTTER_FIXED_MUL (M (m, 2, 2), _z) + + CLUTTER_FIXED_MUL (M (m, 2, 3), _w); + + vertex->w = CLUTTER_FIXED_MUL (M (m, 3, 0), _x) + + CLUTTER_FIXED_MUL (M (m, 3, 1), _y) + + CLUTTER_FIXED_MUL (M (m, 3, 2), _z) + + CLUTTER_FIXED_MUL (M (m, 3, 3), _w); /* Specially for Matthew: was going to put a comment here, but could not * think of anything at all to say ;) @@ -846,8 +846,8 @@ mtx_transform (const ClutterFixed m[], /* Help macros to scale from OpenGL <-1,1> coordinates system to our * X-window based <0,window-size> coordinates */ -#define MTX_GL_SCALE_X(x,w,v1,v2) (COGL_FIXED_MUL (((COGL_FIXED_DIV ((x), (w)) + COGL_FIXED_1) >> 1), (v1)) + (v2)) -#define MTX_GL_SCALE_Y(y,w,v1,v2) ((v1) - COGL_FIXED_MUL (((COGL_FIXED_DIV ((y), (w)) + COGL_FIXED_1) >> 1), (v1)) + (v2)) +#define MTX_GL_SCALE_X(x,w,v1,v2) (CLUTTER_FIXED_MUL (((CLUTTER_FIXED_DIV ((x), (w)) + 1.0) >> 1), (v1)) + (v2)) +#define MTX_GL_SCALE_Y(y,w,v1,v2) ((v1) - CLUTTER_FIXED_MUL (((CLUTTER_FIXED_DIV ((y), (w)) + 1.0) >> 1), (v1)) + (v2)) #define MTX_GL_SCALE_Z(z,w,v1,v2) (MTX_GL_SCALE_X ((z), (w), (v1), (v2))) /* transforms a 4-tuple of coordinates using @matrix and @@ -1024,7 +1024,7 @@ clutter_actor_apply_relative_transform_to_point (ClutterActor *self, x = CLUTTER_UNITS_TO_FIXED (vertex->x); y = CLUTTER_UNITS_TO_FIXED (vertex->y); z = CLUTTER_UNITS_TO_FIXED (vertex->z); - w = COGL_FIXED_1; + w = 1.0; /* First we tranform the point using the OpenGL modelview matrix */ clutter_actor_transform_point_relative (self, ancestor, &x, &y, &z, &w); @@ -1035,9 +1035,9 @@ clutter_actor_apply_relative_transform_to_point (ClutterActor *self, * The w[3] parameter should always be 1.0 here, so we ignore it; otherwise * we would have to divide the original verts with it. */ - tmp.x = COGL_FIXED_MUL (CLUTTER_UNITS_TO_FIXED (x) + COGL_FIXED_0_5, v[2]); - tmp.y = COGL_FIXED_MUL (COGL_FIXED_0_5 - CLUTTER_UNITS_TO_FIXED (y), v[3]); - tmp.z = COGL_FIXED_MUL (CLUTTER_UNITS_TO_FIXED (z) + COGL_FIXED_0_5, v[2]); + tmp.x = CLUTTER_FIXED_MUL (CLUTTER_UNITS_TO_FIXED (x) + 0.5, v[2]); + tmp.y = CLUTTER_FIXED_MUL (0.5 - CLUTTER_UNITS_TO_FIXED (y), v[3]); + tmp.z = CLUTTER_FIXED_MUL (CLUTTER_UNITS_TO_FIXED (z) + 0.5, v[2]); tmp.w = 0; fixed_vertex_to_units (&tmp, vertex); @@ -1119,10 +1119,10 @@ clutter_actor_transform_vertices_relative (ClutterActor *self, cogl_get_modelview_matrix (mtx); - fixed_vertex_transform (mtx, 0, 0, 0, COGL_FIXED_1, &vertices[0]); - fixed_vertex_transform (mtx, width, 0, 0, COGL_FIXED_1, &vertices[1]); - fixed_vertex_transform (mtx, 0, height, 0, COGL_FIXED_1, &vertices[2]); - fixed_vertex_transform (mtx, width, height, 0, COGL_FIXED_1, &vertices[3]); + fixed_vertex_transform (mtx, 0, 0, 0, 1.0, &vertices[0]); + fixed_vertex_transform (mtx, width, 0, 0, 1.0, &vertices[1]); + fixed_vertex_transform (mtx, 0, height, 0, 1.0, &vertices[2]); + fixed_vertex_transform (mtx, width, height, 0, 1.0, &vertices[3]); cogl_pop_matrix(); } @@ -1171,10 +1171,10 @@ clutter_actor_transform_and_project_box (ClutterActor *self, cogl_get_modelview_matrix (mtx); - fixed_vertex_transform (mtx, 0, 0, 0, COGL_FIXED_1, &vertices[0]); - fixed_vertex_transform (mtx, width, 0, 0, COGL_FIXED_1, &vertices[1]); - fixed_vertex_transform (mtx, 0, height, 0, COGL_FIXED_1, &vertices[2]); - fixed_vertex_transform (mtx, width, height, 0, COGL_FIXED_1, &vertices[3]); + fixed_vertex_transform (mtx, 0, 0, 0, 1.0, &vertices[0]); + fixed_vertex_transform (mtx, width, 0, 0, 1.0, &vertices[1]); + fixed_vertex_transform (mtx, 0, height, 0, 1.0, &vertices[2]); + fixed_vertex_transform (mtx, width, height, 0, 1.0, &vertices[3]); cogl_pop_matrix(); @@ -1261,24 +1261,24 @@ clutter_actor_get_allocation_vertices (ClutterActor *self, * The w[3] parameter should always be 1.0 here, so we ignore it; * otherwise we would have to divide the original verts with it. */ - tmp.x = COGL_FIXED_MUL ((vertices[0].x + COGL_FIXED_0_5), v[2]); - tmp.y = COGL_FIXED_MUL ((COGL_FIXED_0_5 - vertices[0].y), v[3]); - tmp.z = COGL_FIXED_MUL ((vertices[0].z + COGL_FIXED_0_5), v[2]); + tmp.x = CLUTTER_FIXED_MUL ((vertices[0].x + 0.5), v[2]); + tmp.y = CLUTTER_FIXED_MUL ((0.5 - vertices[0].y), v[3]); + tmp.z = CLUTTER_FIXED_MUL ((vertices[0].z + 0.5), v[2]); fixed_vertex_to_units (&tmp, &verts[0]); - tmp.x = COGL_FIXED_MUL ((vertices[1].x + COGL_FIXED_0_5), v[2]); - tmp.y = COGL_FIXED_MUL ((COGL_FIXED_0_5 - vertices[1].y), v[3]); - tmp.z = COGL_FIXED_MUL ((vertices[1].z + COGL_FIXED_0_5), v[2]); + tmp.x = CLUTTER_FIXED_MUL ((vertices[1].x + 0.5), v[2]); + tmp.y = CLUTTER_FIXED_MUL ((0.5 - vertices[1].y), v[3]); + tmp.z = CLUTTER_FIXED_MUL ((vertices[1].z + 0.5), v[2]); fixed_vertex_to_units (&tmp, &verts[1]); - tmp.x = COGL_FIXED_MUL ((vertices[2].x + COGL_FIXED_0_5), v[2]); - tmp.y = COGL_FIXED_MUL ((COGL_FIXED_0_5 - vertices[2].y), v[3]); - tmp.z = COGL_FIXED_MUL ((vertices[2].z + COGL_FIXED_0_5), v[2]); + tmp.x = CLUTTER_FIXED_MUL ((vertices[2].x + 0.5), v[2]); + tmp.y = CLUTTER_FIXED_MUL ((0.5 - vertices[2].y), v[3]); + tmp.z = CLUTTER_FIXED_MUL ((vertices[2].z + 0.5), v[2]); fixed_vertex_to_units (&tmp, &verts[2]); - tmp.x = COGL_FIXED_MUL ((vertices[3].x + COGL_FIXED_0_5), v[2]); - tmp.y = COGL_FIXED_MUL ((COGL_FIXED_0_5 - vertices[3].y), v[3]); - tmp.z = COGL_FIXED_MUL ((vertices[3].z + COGL_FIXED_0_5), v[2]); + tmp.x = CLUTTER_FIXED_MUL ((vertices[3].x + 0.5), v[2]); + tmp.y = CLUTTER_FIXED_MUL ((0.5 - vertices[3].y), v[3]); + tmp.z = CLUTTER_FIXED_MUL ((vertices[3].z + 0.5), v[2]); fixed_vertex_to_units (&tmp, &verts[3]); } @@ -1355,7 +1355,7 @@ _clutter_actor_apply_modelview_transform (ClutterActor *self) * the translations included in the rotation are not scaled and so the * entire object will move on the screen as a result of rotating it). */ - if (priv->scale_x != COGL_FIXED_1 || priv->scale_y != COGL_FIXED_1) + if (priv->scale_x != 1.0 || priv->scale_y != 1.0) cogl_scale (priv->scale_x, priv->scale_y); if (priv->rzang) @@ -1364,7 +1364,7 @@ _clutter_actor_apply_modelview_transform (ClutterActor *self) CLUTTER_UNITS_TO_FIXED (priv->rzy), 0); - cogl_rotatex (priv->rzang, 0, 0, COGL_FIXED_1); + cogl_rotatex (priv->rzang, 0, 0, 1.0); cogl_translatex (CLUTTER_UNITS_TO_FIXED (-priv->rzx), CLUTTER_UNITS_TO_FIXED (-priv->rzy), @@ -1377,7 +1377,7 @@ _clutter_actor_apply_modelview_transform (ClutterActor *self) 0, CLUTTER_UNITS_TO_FIXED (priv->z + priv->ryz)); - cogl_rotatex (priv->ryang, 0, COGL_FIXED_1, 0); + cogl_rotatex (priv->ryang, 0, 1.0, 0); cogl_translatex (CLUTTER_UNITS_TO_FIXED (-priv->ryx), 0, @@ -1390,7 +1390,7 @@ _clutter_actor_apply_modelview_transform (ClutterActor *self) CLUTTER_UNITS_TO_FIXED (priv->rxy), CLUTTER_UNITS_TO_FIXED (priv->z + priv->rxz)); - cogl_rotatex (priv->rxang, COGL_FIXED_1, 0, 0); + cogl_rotatex (priv->rxang, 1.0, 0, 0); cogl_translatex (0, CLUTTER_UNITS_TO_FIXED (-priv->rxy), @@ -1656,14 +1656,14 @@ clutter_actor_set_property (GObject *object, case PROP_SCALE_X: clutter_actor_set_scalex (actor, - COGL_FIXED_FROM_FLOAT (g_value_get_double (value)), + CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)), priv->scale_y); break; case PROP_SCALE_Y: clutter_actor_set_scalex (actor, priv->scale_x, - COGL_FIXED_FROM_FLOAT (g_value_get_double (value))); + CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value))); break; case PROP_CLIP: { @@ -1681,7 +1681,7 @@ clutter_actor_set_property (GObject *object, { ClutterFixed angle; - angle = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + angle = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); clutter_actor_set_rotation_internal (actor, CLUTTER_X_AXIS, angle, @@ -1694,7 +1694,7 @@ clutter_actor_set_property (GObject *object, { ClutterFixed angle; - angle = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + angle = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); clutter_actor_set_rotation_internal (actor, CLUTTER_Y_AXIS, angle, @@ -1707,7 +1707,7 @@ clutter_actor_set_property (GObject *object, { ClutterFixed angle; - angle = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + angle = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); clutter_actor_set_rotation_internal (actor, CLUTTER_Z_AXIS, angle, @@ -1877,22 +1877,22 @@ clutter_actor_get_property (GObject *object, } break; case PROP_SCALE_X: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->scale_x)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->scale_x)); break; case PROP_SCALE_Y: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->scale_y)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->scale_y)); break; case PROP_REACTIVE: g_value_set_boolean (value, clutter_actor_get_reactive (actor)); break; case PROP_ROTATION_ANGLE_X: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->rxang)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->rxang)); break; case PROP_ROTATION_ANGLE_Y: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->ryang)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->ryang)); break; case PROP_ROTATION_ANGLE_Z: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->rzang)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->rzang)); break; case PROP_ROTATION_CENTER_X: { @@ -3020,8 +3020,8 @@ clutter_actor_init (ClutterActor *self) priv->has_clip = FALSE; priv->opacity = 0xff; priv->id = clutter_id_pool_add (CLUTTER_CONTEXT()->id_pool, self); - priv->scale_x = COGL_FIXED_1; - priv->scale_y = COGL_FIXED_1; + priv->scale_x = 1.0; + priv->scale_y = 1.0; priv->shader_data = NULL; priv->show_on_set_parent = TRUE; @@ -4916,8 +4916,8 @@ clutter_actor_set_scale (ClutterActor *self, g_return_if_fail (CLUTTER_IS_ACTOR (self)); clutter_actor_set_scalex (self, - COGL_FIXED_FROM_FLOAT (scale_x), - COGL_FIXED_FROM_FLOAT (scale_y)); + CLUTTER_FLOAT_TO_FIXED (scale_x), + CLUTTER_FLOAT_TO_FIXED (scale_y)); } /** @@ -4964,10 +4964,10 @@ clutter_actor_get_scale (ClutterActor *self, g_return_if_fail (CLUTTER_IS_ACTOR (self)); if (scale_x) - *scale_x = COGL_FIXED_TO_FLOAT (self->priv->scale_x); + *scale_x = CLUTTER_FIXED_TO_FLOAT (self->priv->scale_x); if (scale_y) - *scale_y = COGL_FIXED_TO_FLOAT (self->priv->scale_y); + *scale_y = CLUTTER_FIXED_TO_FLOAT (self->priv->scale_y); } /** @@ -5224,7 +5224,7 @@ clutter_actor_set_rotationu (ClutterActor *self, g_return_if_fail (CLUTTER_IS_ACTOR (self)); clutter_actor_set_rotation_internal (self, axis, - COGL_FIXED_FROM_FLOAT (angle), + CLUTTER_FLOAT_TO_FIXED (angle), x, y, z); } @@ -5294,7 +5294,7 @@ clutter_actor_set_rotation (ClutterActor *self, g_return_if_fail (CLUTTER_IS_ACTOR (self)); clutter_actor_set_rotationx (self, axis, - COGL_FIXED_FROM_FLOAT (angle), + CLUTTER_FLOAT_TO_FIXED (angle), x, y, z); } @@ -5335,7 +5335,7 @@ clutter_actor_get_rotationu (ClutterActor *self, switch (axis) { case CLUTTER_X_AXIS: - retval = COGL_FIXED_TO_DOUBLE (priv->rxang); + retval = CLUTTER_FIXED_TO_DOUBLE (priv->rxang); if (y) *y = priv->rxy; if (z) @@ -5343,7 +5343,7 @@ clutter_actor_get_rotationu (ClutterActor *self, break; case CLUTTER_Y_AXIS: - retval = COGL_FIXED_TO_DOUBLE (priv->ryang); + retval = CLUTTER_FIXED_TO_DOUBLE (priv->ryang); if (x) *x = priv->ryx; if (z) @@ -5351,7 +5351,7 @@ clutter_actor_get_rotationu (ClutterActor *self, break; case CLUTTER_Z_AXIS: - retval = COGL_FIXED_TO_DOUBLE (priv->rzang); + retval = CLUTTER_FIXED_TO_DOUBLE (priv->rzang); if (x) *x = priv->rzx; if (y) @@ -5450,7 +5450,7 @@ clutter_actor_get_rotation (ClutterActor *self, { g_return_val_if_fail (CLUTTER_IS_ACTOR (self), 0.0); - return COGL_FIXED_TO_FLOAT (clutter_actor_get_rotationx (self, + return CLUTTER_FIXED_TO_FLOAT (clutter_actor_get_rotationx (self, axis, x, y, z)); } @@ -6612,7 +6612,7 @@ parse_rotation_array (ClutterActor *actor, /* angle */ element = json_array_get_element (array, 0); if (JSON_NODE_TYPE (element) == JSON_NODE_VALUE) - info->angle = COGL_FIXED_FROM_FLOAT (json_node_get_double (element)); + info->angle = CLUTTER_FLOAT_TO_FIXED (json_node_get_double (element)); else return FALSE; @@ -6918,12 +6918,12 @@ clutter_actor_transform_stage_point (ClutterActor *self, if (!du || !dv) return FALSE; -#define FP2FX COGL_FIXED_FROM_FLOAT -#define FX2FP COGL_FIXED_TO_DOUBLE +#define FP2FX CLUTTER_FLOAT_TO_FIXED +#define FX2FP CLUTTER_FIXED_TO_DOUBLE #define UX2FP CLUTTER_UNITS_TO_FLOAT #define UX2FX CLUTTER_UNITS_TO_FIXED #define FP2INT CLUTTER_FLOAT_TO_INT -#define DET2X(a,b,c,d) (COGL_FIXED_MUL ((a), (d)) - COGL_FIXED_MUL ((b), (c))) +#define DET2X(a,b,c,d) ((a * d) - (b * c)) #define DET2FP(a,b,c,d) ((a) * (d) - (b) * (c)) /* @@ -6946,7 +6946,7 @@ clutter_actor_transform_stage_point (ClutterActor *self, RQ[2][1] = UX2FX (v[0].y); RQ[0][2] = 0; RQ[1][2] = 0; - RQ[2][2] = COGL_FIXED_1; + RQ[2][2] = 1.0; } else { @@ -6976,16 +6976,16 @@ clutter_actor_transform_stage_point (ClutterActor *self, RQ[0][2] = FP2FX (DET2FP (UX2FP (px), dx2, UX2FP (py), dy2) / del); RQ[1][2] = FP2FX (DET2FP (dx1, UX2FP (px), dy1, UX2FP (py)) / del); RQ[1][2] = FP2FX (DET2FP (dx1, UX2FP (px), dy1, UX2FP (py)) / del); - RQ[2][2] = COGL_FIXED_1; + RQ[2][2] = 1.0; RQ[0][0] = UX2FX (v[1].x - v[0].x) - + COGL_FIXED_MUL (RQ[0][2], UX2FX (v[1].x)); + + CLUTTER_FIXED_MUL (RQ[0][2], UX2FX (v[1].x)); RQ[1][0] = UX2FX (v[2].x - v[0].x) - + COGL_FIXED_MUL (RQ[1][2], UX2FX (v[2].x)); + + CLUTTER_FIXED_MUL (RQ[1][2], UX2FX (v[2].x)); RQ[2][0] = UX2FX (v[0].x); RQ[0][1] = UX2FX (v[1].y - v[0].y) - + COGL_FIXED_MUL (RQ[0][2], UX2FX (v[1].y)); + + CLUTTER_FIXED_MUL (RQ[0][2], UX2FX (v[1].y)); RQ[1][1] = UX2FX (v[2].y - v[0].y) - + COGL_FIXED_MUL (RQ[1][2], UX2FX (v[2].y)); + + CLUTTER_FIXED_MUL (RQ[1][2], UX2FX (v[2].y)); RQ[2][1] = UX2FX (v[0].y); } @@ -7017,9 +7017,9 @@ clutter_actor_transform_stage_point (ClutterActor *self, /* * Check the resutling martix is OK. */ - det = COGL_FIXED_MUL (RQ[0][0], ST[0][0]) - + COGL_FIXED_MUL (RQ[0][1], ST[0][1]) - + COGL_FIXED_MUL (RQ[0][2], ST[0][2]); + det = CLUTTER_FIXED_MUL (RQ[0][0], ST[0][0]) + + CLUTTER_FIXED_MUL (RQ[0][1], ST[0][1]) + + CLUTTER_FIXED_MUL (RQ[0][2], ST[0][2]); if (!det) return FALSE; @@ -7481,7 +7481,7 @@ clutter_actor_is_scaled (ClutterActor *self) priv = self->priv; - if (priv->scale_x != COGL_FIXED_1 || priv->scale_y != COGL_FIXED_1) + if (priv->scale_x != 1.0 || priv->scale_y != 1.0) return TRUE; return FALSE; diff --git a/clutter/clutter-alpha.c b/clutter/clutter-alpha.c index dc1ddde..60ef0d3 100644 --- a/clutter/clutter-alpha.c +++ b/clutter/clutter-alpha.c @@ -699,12 +699,12 @@ clutter_ramp_func (ClutterAlpha *alpha, static guint32 sincx1024_func (ClutterAlpha *alpha, - ClutterAngle angle, + float angle, ClutterFixed offset) { ClutterTimeline *timeline; gint current_frame_num, n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -716,7 +716,7 @@ sincx1024_func (ClutterAlpha *alpha, x -= (512 * 512 / angle); - sine = ((cogl_angle_sin (x) + offset) / 2) + sine = ((sinf (x * (G_PI/180.0)) + offset) / 2) * CLUTTER_ALPHA_MAX_ALPHA; sine = sine >> COGL_FIXED_Q; @@ -744,14 +744,14 @@ sincx_func (ClutterAlpha *alpha, n_frames = clutter_timeline_get_n_frames (timeline); x = angle * current_frame_num / n_frames; - x = COGL_FIXED_FAST_MUL (x, COGL_FIXED_PI) - - COGL_FIXED_FAST_DIV (COGL_FIXED_PI, angle); + x = CLUTTER_FIXED_MUL (x, CFX_PI) + - CLUTTER_FIXED_DIV (CFX_PI, angle); - sine = (cogl_fixed_sin (x) + offset) / 2; + sine = (sinf (x) + offset) / 2; - CLUTTER_NOTE (ALPHA, "sine: %2f\n", COGL_FIXED_TO_DOUBLE (sine)); + CLUTTER_NOTE (ALPHA, "sine: %2f\n", CLUTTER_FIXED_TO_DOUBLE (sine)); - return COGL_FIXED_TO_INT (sine * CLUTTER_ALPHA_MAX_ALPHA); + return (sine * CLUTTER_ALPHA_MAX_ALPHA); } /* NB: angle is not in radians but in muliples of PI, i.e., 2.0 @@ -810,7 +810,7 @@ clutter_sine_func (ClutterAlpha *alpha, return sinc_func (alpha, 2.0, 1.0); #else /* 2.0 above represents full circle */ - return sincx1024_func (alpha, 1024, COGL_FIXED_1); + return sincx1024_func (alpha, 1024, 1.0); #endif } @@ -842,7 +842,7 @@ clutter_sine_inc_func (ClutterAlpha *alpha, ClutterTimeline * timeline; gint frame; gint n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -851,7 +851,7 @@ clutter_sine_inc_func (ClutterAlpha *alpha, x = 256 * frame / n_frames; - sine = cogl_angle_sin (x) * CLUTTER_ALPHA_MAX_ALPHA; + sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; return ((guint32) sine) >> COGL_FIXED_Q; } @@ -884,7 +884,7 @@ clutter_sine_dec_func (ClutterAlpha *alpha, ClutterTimeline * timeline; gint frame; gint n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -893,7 +893,7 @@ clutter_sine_dec_func (ClutterAlpha *alpha, x = 256 * frame / n_frames + 256; - sine = cogl_angle_sin (x) * CLUTTER_ALPHA_MAX_ALPHA; + sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; return ((guint32) sine) >> COGL_FIXED_Q; } @@ -926,7 +926,7 @@ clutter_sine_half_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -935,7 +935,7 @@ clutter_sine_half_func (ClutterAlpha *alpha, x = 512 * frame / n_frames; - sine = cogl_angle_sin (x) * CLUTTER_ALPHA_MAX_ALPHA; + sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; return ((guint32) sine) >> COGL_FIXED_Q; } @@ -962,7 +962,7 @@ clutter_sine_in_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -972,7 +972,7 @@ clutter_sine_in_func (ClutterAlpha *alpha, /* XXX- if we use 768 we overflow */ x = 256 * frame / n_frames + 767; - sine = (cogl_angle_sin (x) + 1) * CLUTTER_ALPHA_MAX_ALPHA; + sine = (sinf (x * (G_PI/180.0)) + 1) * CLUTTER_ALPHA_MAX_ALPHA; return ((guint32) sine) >> COGL_FIXED_Q; } @@ -998,7 +998,7 @@ clutter_sine_out_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -1007,7 +1007,7 @@ clutter_sine_out_func (ClutterAlpha *alpha, x = 256 * frame / n_frames; - sine = cogl_angle_sin (x) * CLUTTER_ALPHA_MAX_ALPHA; + sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; return ((guint32) sine) >> COGL_FIXED_Q; } @@ -1034,7 +1034,7 @@ clutter_sine_in_out_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - ClutterAngle x; + float x; ClutterFixed sine; timeline = clutter_alpha_get_timeline (alpha); @@ -1043,7 +1043,7 @@ clutter_sine_in_out_func (ClutterAlpha *alpha, x = -256 * frame / n_frames + 256; - sine = (cogl_angle_sin (x) + 1) / 2 * CLUTTER_ALPHA_MAX_ALPHA; + sine = (sinf (x * (G_PI/180.0)) + 1) / 2 * CLUTTER_ALPHA_MAX_ALPHA; return ((guint32) sine) >> COGL_FIXED_Q; } @@ -1129,7 +1129,7 @@ clutter_smoothstep_inc_func (ClutterAlpha *alpha, /* * Convert x to 8.24 for next step. */ - x = COGL_FIXED_FAST_DIV (frame, n_frames) << 8; + x = CLUTTER_FIXED_DIV (frame, n_frames) << 8; /* * f(x) = -2x^3 + 3x^2 @@ -1138,7 +1138,7 @@ clutter_smoothstep_inc_func (ClutterAlpha *alpha, */ r = ((x >> 12) * (x >> 12) * 3 - (x >> 15) * (x >> 16) * (x >> 16)) >> 8; - return COGL_FIXED_TO_INT (r * CLUTTER_ALPHA_MAX_ALPHA); + return (r * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -1214,7 +1214,7 @@ clutter_exp_inc_func (ClutterAlpha *alpha, x = x_alpha_max * frame / n_frames; - result = CLAMP (cogl_fixed_pow2 (x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); + result = CLAMP (pow2f (x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); return result; } @@ -1265,7 +1265,7 @@ clutter_exp_dec_func (ClutterAlpha *alpha, x = (x_alpha_max * (n_frames - frame)) / n_frames; - result = CLAMP (cogl_fixed_pow2 (x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); + result = CLAMP (pow2f (x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); return result; } diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c index efeeac1..2dd8a44 100644 --- a/clutter/clutter-backend.c +++ b/clutter/clutter-backend.c @@ -416,7 +416,7 @@ clutter_backend_set_resolution (ClutterBackend *backend, priv = backend->priv; - fixed_dpi = COGL_FIXED_FROM_FLOAT (dpi); + fixed_dpi = CLUTTER_FLOAT_TO_FIXED (dpi); if (priv->resolution != fixed_dpi) priv->resolution = fixed_dpi; @@ -443,7 +443,7 @@ clutter_backend_get_resolution (ClutterBackend *backend) { g_return_val_if_fail (CLUTTER_IS_BACKEND (backend), -1.0); - return COGL_FIXED_TO_FLOAT (backend->priv->resolution); + return CLUTTER_FIXED_TO_FLOAT (backend->priv->resolution); } /** diff --git a/clutter/clutter-behaviour-depth.c b/clutter/clutter-behaviour-depth.c index 90fc456..0749b8e 100644 --- a/clutter/clutter-behaviour-depth.c +++ b/clutter/clutter-behaviour-depth.c @@ -83,9 +83,9 @@ clutter_behaviour_depth_alpha_notify (ClutterBehaviour *behaviour, priv = CLUTTER_BEHAVIOUR_DEPTH (behaviour)->priv; /* Need to create factor as to avoid borking signedness */ - factor = COGL_FIXED_FROM_INT (alpha_value) / CLUTTER_ALPHA_MAX_ALPHA; + factor = (float)(alpha_value) / CLUTTER_ALPHA_MAX_ALPHA; depth = priv->depth_start - + COGL_FIXED_TO_INT (factor * (priv->depth_end - priv->depth_start)); + + (factor * (priv->depth_end - priv->depth_start)); CLUTTER_NOTE (BEHAVIOUR, "alpha: %d, depth: %d", alpha_value, depth); diff --git a/clutter/clutter-behaviour-ellipse.c b/clutter/clutter-behaviour-ellipse.c index a5d4bff..162a949 100644 --- a/clutter/clutter-behaviour-ellipse.c +++ b/clutter/clutter-behaviour-ellipse.c @@ -86,11 +86,11 @@ struct _ClutterBehaviourEllipsePrivate gint a; gint b; - ClutterAngle angle_start; - ClutterAngle angle_end; - ClutterAngle angle_tilt_x; - ClutterAngle angle_tilt_y; - ClutterAngle angle_tilt_z; + float angle_start; + float angle_end; + float angle_tilt_x; + float angle_tilt_y; + float angle_tilt_z; ClutterRotateDirection direction; }; @@ -104,14 +104,14 @@ typedef struct _knot3d static void clutter_behaviour_ellipse_advance (ClutterBehaviourEllipse *e, - ClutterAngle angle, + float angle, knot3d *knot) { ClutterBehaviourEllipsePrivate *priv = e->priv; gint x, y, z; - x = COGL_FIXED_TO_INT (priv->a * cogl_angle_cos (angle)); - y = COGL_FIXED_TO_INT (priv->b * cogl_angle_sin (angle)); + x = (priv->a * cosf (angle * (G_PI/180.0))); + y = (priv->b * sinf (angle * (G_PI/180.0))); z = 0; if (priv->angle_tilt_z) @@ -126,40 +126,40 @@ clutter_behaviour_ellipse_advance (ClutterBehaviourEllipse *e, */ ClutterFixed x2, y2; - x2 = x * cogl_angle_cos (priv->angle_tilt_z) - - y * cogl_angle_sin (priv->angle_tilt_z); + x2 = x * cosf (priv->angle_tilt_z * (G_PI/180.0)) + - y * sinf (priv->angle_tilt_z * (G_PI/180.0)); - y2 = y * cogl_angle_cos (priv->angle_tilt_z) - + x * cogl_angle_sin (priv->angle_tilt_z); + y2 = y * cosf (priv->angle_tilt_z * (G_PI/180.0)) + + x * sinf (priv->angle_tilt_z * (G_PI/180.0)); - x = COGL_FIXED_TO_INT (x2); - y = COGL_FIXED_TO_INT (y2); + x = (x2); + y = (y2); } if (priv->angle_tilt_x) { ClutterFixed z2, y2; - z2 = - y * cogl_angle_sin (priv->angle_tilt_x); + z2 = - y * sinf (priv->angle_tilt_x * (G_PI/180.0)); - y2 = y * cogl_angle_cos (priv->angle_tilt_x); + y2 = y * cosf (priv->angle_tilt_x * (G_PI/180.0)); - z = COGL_FIXED_TO_INT (z2); - y = COGL_FIXED_TO_INT (y2); + z = (z2); + y = (y2); } if (priv->angle_tilt_y) { ClutterFixed x2, z2; - x2 = x * cogl_angle_cos (priv->angle_tilt_y) - - z * cogl_angle_sin (priv->angle_tilt_y); + x2 = x * cosf (priv->angle_tilt_y * (G_PI/180.0)) + - z * sinf (priv->angle_tilt_y * (G_PI/180.0)); - z2 = z * cogl_angle_cos (priv->angle_tilt_y) - + x * cogl_angle_sin (priv->angle_tilt_y); + z2 = z * cosf (priv->angle_tilt_y * (G_PI/180.0)) + + x * sinf (priv->angle_tilt_y * (G_PI/180.0)); - x = COGL_FIXED_TO_INT (x2); - z = COGL_FIXED_TO_INT (z2); + x = (x2); + z = (z2); } knot->x = x; @@ -187,10 +187,10 @@ actor_apply_knot_foreach (ClutterBehaviour *behave, clutter_actor_set_depth (actor, knot->z); } -static inline ClutterAngle -clamp_angle (ClutterAngle a) +static inline float +clamp_angle (float a) { - ClutterAngle a1, a2; + float a1, a2; gint rounds; /* Need to add the 256 offset here, since the user space 0 maps to our @@ -209,9 +209,9 @@ clutter_behaviour_ellipse_alpha_notify (ClutterBehaviour *behave, { ClutterBehaviourEllipse *self = CLUTTER_BEHAVIOUR_ELLIPSE (behave); ClutterBehaviourEllipsePrivate *priv = self->priv; - ClutterAngle start, end; + float start, end; knot3d knot; - ClutterAngle angle = 0; + float angle = 0; start = priv->angle_start; end = priv->angle_end; @@ -783,7 +783,7 @@ clutter_behaviour_ellipse_set_angle_start (ClutterBehaviourEllipse *self, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); clutter_behaviour_ellipse_set_angle_startx (self, - COGL_FIXED_FROM_FLOAT (angle_start)); + CLUTTER_FLOAT_TO_FIXED (angle_start)); } /** @@ -802,7 +802,7 @@ clutter_behaviour_ellipse_set_angle_startx (ClutterBehaviourEllipse *self, ClutterFixed angle_start) { ClutterBehaviourEllipsePrivate *priv; - ClutterAngle new_angle; + float new_angle; g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); new_angle = clamp_angle (COGL_ANGLE_FROM_DEGX (angle_start) - 256); @@ -868,7 +868,7 @@ clutter_behaviour_ellipse_set_angle_end (ClutterBehaviourEllipse *self, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); clutter_behaviour_ellipse_set_angle_endx (self, - COGL_FIXED_FROM_FLOAT (angle_end)); + CLUTTER_FLOAT_TO_FIXED (angle_end)); } /** @@ -887,7 +887,7 @@ clutter_behaviour_ellipse_set_angle_endx (ClutterBehaviourEllipse *self, ClutterFixed angle_end) { ClutterBehaviourEllipsePrivate *priv; - ClutterAngle new_angle; + float new_angle; g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); @@ -959,7 +959,7 @@ clutter_behaviour_ellipse_set_angle_tilt (ClutterBehaviourEllipse *self, clutter_behaviour_ellipse_set_angle_tiltx (self, axis, - COGL_FIXED_FROM_FLOAT (angle_tilt)); + CLUTTER_FLOAT_TO_FIXED (angle_tilt)); } /** @@ -979,7 +979,7 @@ clutter_behaviour_ellipse_set_angle_tiltx (ClutterBehaviourEllipse *self, ClutterFixed angle_tilt) { ClutterBehaviourEllipsePrivate *priv; - ClutterAngle new_angle; + float new_angle; g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); @@ -1096,7 +1096,7 @@ clutter_behaviour_ellipse_set_tilt (ClutterBehaviourEllipse *self, gdouble angle_tilt_z) { ClutterBehaviourEllipsePrivate *priv; - ClutterAngle new_angle_x, new_angle_y, new_angle_z; + float new_angle_x, new_angle_y, new_angle_z; g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); @@ -1150,7 +1150,7 @@ clutter_behaviour_ellipse_set_tiltx (ClutterBehaviourEllipse *self, ClutterFixed angle_tilt_z) { ClutterBehaviourEllipsePrivate *priv; - ClutterAngle new_angle_x, new_angle_y, new_angle_z; + float new_angle_x, new_angle_y, new_angle_z; g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); diff --git a/clutter/clutter-behaviour-rotate.c b/clutter/clutter-behaviour-rotate.c index 3e13c6d..8bfa16e 100644 --- a/clutter/clutter-behaviour-rotate.c +++ b/clutter/clutter-behaviour-rotate.c @@ -108,8 +108,8 @@ ClutterFixed clamp_angle (ClutterFixed a) ClutterFixed a1, a2; gint rounds; - rounds = a / COGL_FIXED_360; - a1 = rounds * COGL_FIXED_360; + rounds = a / 360.0; + a1 = rounds * 360.0; a2 = a - a1; return a2; @@ -126,7 +126,7 @@ clutter_behaviour_rotate_alpha_notify (ClutterBehaviour *behaviour, rotate_behaviour = CLUTTER_BEHAVIOUR_ROTATE (behaviour); priv = rotate_behaviour->priv; - factor = COGL_FIXED_FROM_INT (alpha_value) / CLUTTER_ALPHA_MAX_ALPHA; + factor = (float)(alpha_value) / CLUTTER_ALPHA_MAX_ALPHA; angle = 0; start = priv->angle_start; @@ -134,14 +134,14 @@ clutter_behaviour_rotate_alpha_notify (ClutterBehaviour *behaviour, if (priv->direction == CLUTTER_ROTATE_CW && start >= end) { - end += COGL_FIXED_360; + end += 360.0; } else if (priv->direction == CLUTTER_ROTATE_CCW && start <= end) { - end -= COGL_FIXED_360; + end -= 360.0; } - angle = COGL_FIXED_FAST_MUL ((end - start), factor) + start; + angle = CLUTTER_FIXED_MUL ((end - start), factor) + start; clutter_behaviour_actors_foreach (behaviour, alpha_notify_foreach, @@ -163,10 +163,10 @@ clutter_behaviour_rotate_set_property (GObject *gobject, switch (prop_id) { case PROP_ANGLE_START: - priv->angle_start = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + priv->angle_start = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); break; case PROP_ANGLE_END: - priv->angle_end = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + priv->angle_end = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); break; case PROP_AXIS: priv->axis = g_value_get_enum (value); @@ -211,10 +211,10 @@ clutter_behaviour_rotate_get_property (GObject *gobject, switch (prop_id) { case PROP_ANGLE_START: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->angle_start)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->angle_start)); break; case PROP_ANGLE_END: - g_value_set_double (value, COGL_FIXED_TO_DOUBLE (priv->angle_end)); + g_value_set_double (value, CLUTTER_FIXED_TO_DOUBLE (priv->angle_end)); break; case PROP_AXIS: g_value_set_enum (value, priv->axis); @@ -367,8 +367,8 @@ clutter_behaviour_rotate_init (ClutterBehaviourRotate *rotate) rotate->priv = priv = CLUTTER_BEHAVIOUR_ROTATE_GET_PRIVATE (rotate); - priv->angle_start = COGL_FIXED_FROM_FLOAT (0.0); - priv->angle_end = COGL_FIXED_FROM_FLOAT (0.0); + priv->angle_start = CLUTTER_FLOAT_TO_FIXED (0.0); + priv->angle_end = CLUTTER_FLOAT_TO_FIXED (0.0); priv->axis = CLUTTER_Z_AXIS; priv->direction = CLUTTER_ROTATE_CW; priv->center_x = priv->center_y = priv->center_z = 0; @@ -568,10 +568,10 @@ clutter_behaviour_rotate_get_bounds (ClutterBehaviourRotate *rotate, priv = rotate->priv; if (angle_start) - *angle_start = COGL_FIXED_TO_DOUBLE (priv->angle_start); + *angle_start = CLUTTER_FIXED_TO_DOUBLE (priv->angle_start); if (angle_end) - *angle_end = COGL_FIXED_TO_DOUBLE (priv->angle_end); + *angle_end = CLUTTER_FIXED_TO_DOUBLE (priv->angle_end); } /** @@ -593,8 +593,8 @@ clutter_behaviour_rotate_set_bounds (ClutterBehaviourRotate *rotate, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ROTATE (rotate)); clutter_behaviour_rotate_set_boundsx (rotate, - COGL_FIXED_FROM_FLOAT (angle_start), - COGL_FIXED_FROM_FLOAT (angle_end)); + CLUTTER_FLOAT_TO_FIXED (angle_start), + CLUTTER_FLOAT_TO_FIXED (angle_end)); } /** diff --git a/clutter/clutter-behaviour-scale.c b/clutter/clutter-behaviour-scale.c index f358a71..66d4542 100644 --- a/clutter/clutter-behaviour-scale.c +++ b/clutter/clutter-behaviour-scale.c @@ -115,14 +115,14 @@ clutter_behaviour_scale_alpha_notify (ClutterBehaviour *behave, { ClutterFixed factor; - factor = COGL_FIXED_FROM_INT (alpha_value) / CLUTTER_ALPHA_MAX_ALPHA; + factor = (float)(alpha_value) / CLUTTER_ALPHA_MAX_ALPHA; scale_x = - COGL_FIXED_FAST_MUL (factor, (priv->x_scale_end - priv->x_scale_start)); + CLUTTER_FIXED_MUL (factor, (priv->x_scale_end - priv->x_scale_start)); scale_x += priv->x_scale_start; scale_y = - COGL_FIXED_FAST_MUL (factor, (priv->y_scale_end - priv->y_scale_start)); + CLUTTER_FIXED_MUL (factor, (priv->y_scale_end - priv->y_scale_start)); scale_y += priv->y_scale_start; } @@ -147,16 +147,16 @@ clutter_behaviour_scale_set_property (GObject *gobject, switch (prop_id) { case PROP_X_SCALE_START: - priv->x_scale_start = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + priv->x_scale_start = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); break; case PROP_X_SCALE_END: - priv->x_scale_end = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + priv->x_scale_end = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); break; case PROP_Y_SCALE_START: - priv->y_scale_start = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + priv->y_scale_start = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); break; case PROP_Y_SCALE_END: - priv->y_scale_end = COGL_FIXED_FROM_FLOAT (g_value_get_double (value)); + priv->y_scale_end = CLUTTER_FLOAT_TO_FIXED (g_value_get_double (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); @@ -177,16 +177,16 @@ clutter_behaviour_scale_get_property (GObject *gobject, switch (prop_id) { case PROP_X_SCALE_START: - g_value_set_double (value, COGL_FIXED_TO_FLOAT (priv->x_scale_start)); + g_value_set_double (value, CLUTTER_FIXED_TO_FLOAT (priv->x_scale_start)); break; case PROP_X_SCALE_END: - g_value_set_double (value, COGL_FIXED_TO_FLOAT (priv->x_scale_end)); + g_value_set_double (value, CLUTTER_FIXED_TO_FLOAT (priv->x_scale_end)); break; case PROP_Y_SCALE_START: - g_value_set_double (value, COGL_FIXED_TO_FLOAT (priv->y_scale_start)); + g_value_set_double (value, CLUTTER_FIXED_TO_FLOAT (priv->y_scale_start)); break; case PROP_Y_SCALE_END: - g_value_set_double (value, COGL_FIXED_TO_FLOAT (priv->y_scale_end)); + g_value_set_double (value, CLUTTER_FIXED_TO_FLOAT (priv->y_scale_end)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); @@ -276,8 +276,8 @@ clutter_behaviour_scale_init (ClutterBehaviourScale *self) self->priv = priv = CLUTTER_BEHAVIOUR_SCALE_GET_PRIVATE (self); - priv->x_scale_start = priv->x_scale_end = COGL_FIXED_1; - priv->y_scale_start = priv->y_scale_end = COGL_FIXED_1; + priv->x_scale_start = priv->x_scale_end = 1.0; + priv->y_scale_start = priv->y_scale_end = 1.0; } /** @@ -304,10 +304,10 @@ clutter_behaviour_scale_new (ClutterAlpha *alpha, g_return_val_if_fail (alpha == NULL || CLUTTER_IS_ALPHA (alpha), NULL); return clutter_behaviour_scale_newx (alpha, - COGL_FIXED_FROM_FLOAT (x_scale_start), - COGL_FIXED_FROM_FLOAT (y_scale_start), - COGL_FIXED_FROM_FLOAT (x_scale_end), - COGL_FIXED_FROM_FLOAT (y_scale_end)); + CLUTTER_FLOAT_TO_FIXED (x_scale_start), + CLUTTER_FLOAT_TO_FIXED (y_scale_start), + CLUTTER_FLOAT_TO_FIXED (x_scale_end), + CLUTTER_FLOAT_TO_FIXED (y_scale_end)); } /** @@ -367,10 +367,10 @@ clutter_behaviour_scale_set_bounds (ClutterBehaviourScale *scale, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_SCALE (scale)); clutter_behaviour_scale_set_boundsx (scale, - COGL_FIXED_FROM_FLOAT (x_scale_start), - COGL_FIXED_FROM_FLOAT (y_scale_start), - COGL_FIXED_FROM_FLOAT (x_scale_end), - COGL_FIXED_FROM_FLOAT (y_scale_end)); + CLUTTER_FLOAT_TO_FIXED (x_scale_start), + CLUTTER_FLOAT_TO_FIXED (y_scale_start), + CLUTTER_FLOAT_TO_FIXED (x_scale_end), + CLUTTER_FLOAT_TO_FIXED (y_scale_end)); } /** @@ -403,16 +403,16 @@ clutter_behaviour_scale_get_bounds (ClutterBehaviourScale *scale, priv = scale->priv; if (x_scale_start) - *x_scale_start = COGL_FIXED_TO_DOUBLE (priv->x_scale_start); + *x_scale_start = CLUTTER_FIXED_TO_DOUBLE (priv->x_scale_start); if (x_scale_end) - *x_scale_end = COGL_FIXED_TO_DOUBLE (priv->x_scale_end); + *x_scale_end = CLUTTER_FIXED_TO_DOUBLE (priv->x_scale_end); if (y_scale_start) - *y_scale_start = COGL_FIXED_TO_DOUBLE (priv->y_scale_start); + *y_scale_start = CLUTTER_FIXED_TO_DOUBLE (priv->y_scale_start); if (y_scale_end) - *y_scale_end = COGL_FIXED_TO_DOUBLE (priv->y_scale_end); + *y_scale_end = CLUTTER_FIXED_TO_DOUBLE (priv->y_scale_end); } /** diff --git a/clutter/clutter-clone-texture.c b/clutter/clutter-clone-texture.c index a2350cb..f79dd67 100644 --- a/clutter/clutter-clone-texture.c +++ b/clutter/clutter-clone-texture.c @@ -196,20 +196,20 @@ clutter_clone_texture_paint (ClutterActor *self) tex_height = cogl_texture_get_height (cogl_texture); if (priv->repeat_x && tex_width > 0) - t_w = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (x_2 - x_1), - COGL_FIXED_FROM_INT (tex_width)); + t_w = CLUTTER_FIXED_DIV ((float)(x_2 - x_1), + (float)(tex_width)); else - t_w = COGL_FIXED_1; + t_w = 1.0; if (priv->repeat_y && tex_height > 0) - t_h = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (y_2 - y_1), - COGL_FIXED_FROM_INT (tex_height)); + t_h = CLUTTER_FIXED_DIV ((float)(y_2 - y_1), + (float)(tex_height)); else - t_h = COGL_FIXED_1; + t_h = 1.0; /* Parent paint translated us into position */ cogl_texture_rectangle (cogl_texture, 0, 0, - COGL_FIXED_FROM_INT (x_2 - x_1), - COGL_FIXED_FROM_INT (y_2 - y_1), + (float)(x_2 - x_1), + (float)(y_2 - y_1), 0, 0, t_w, t_h); } diff --git a/clutter/clutter-color.c b/clutter/clutter-color.c index 411bb13..b77b3a7 100644 --- a/clutter/clutter-color.c +++ b/clutter/clutter-color.c @@ -154,9 +154,9 @@ clutter_color_to_hlsx (const ClutterColor *src, g_return_if_fail (src != NULL); - red = COGL_FIXED_FROM_INT (src->red) / 255; - green = COGL_FIXED_FROM_INT (src->green) / 255; - blue = COGL_FIXED_FROM_INT (src->blue) / 255; + red = (float)(src->red) / 255; + green = (float)(src->green) / 255; + blue = (float)(src->blue) / 255; if (red > green) { @@ -189,31 +189,31 @@ clutter_color_to_hlsx (const ClutterColor *src, if (max != min) { - if (l <= COGL_FIXED_0_5) - s = COGL_FIXED_FAST_DIV ((max - min), (max + min)); + if (l <= 0.5) + s = CLUTTER_FIXED_DIV ((max - min), (max + min)); else - s = COGL_FIXED_FAST_DIV ((max - min), - (COGL_FIXED_FROM_INT (2) - max - min)); + s = CLUTTER_FIXED_DIV ((max - min), + ((float)(2) - max - min)); delta = max - min; if (red == max) - h = COGL_FIXED_FAST_DIV ((green - blue), delta); + h = CLUTTER_FIXED_DIV ((green - blue), delta); else if (green == max) { - h = COGL_FIXED_FROM_INT (2) - + COGL_FIXED_FAST_DIV ((blue - red), delta); + h = (float)(2) + + CLUTTER_FIXED_DIV ((blue - red), delta); } else if (blue == max) { - h = COGL_FIXED_FROM_INT (4) - + COGL_FIXED_FAST_DIV ((red - green), delta); + h = (float)(4) + + CLUTTER_FIXED_DIV ((red - green), delta); } h *= 60; if (h < 0) - h += COGL_FIXED_360; + h += 360.0; } if (hue) @@ -251,102 +251,102 @@ clutter_color_from_hlsx (ClutterColor *dest, l = luminance; s = saturation; - if (l <= COGL_FIXED_0_5) - m2 = COGL_FIXED_FAST_MUL (l, (COGL_FIXED_1 + s)); + if (l <= 0.5) + m2 = CLUTTER_FIXED_MUL (l, (1.0 + s)); else - m2 = l + s - COGL_FIXED_FAST_MUL (l, s); + m2 = l + s - CLUTTER_FIXED_MUL (l, s); m1 = 2 * l - m2; if (s == 0) { - dest->red = (guint8) COGL_FIXED_TO_INT (l * 255); - dest->green = (guint8) COGL_FIXED_TO_INT (l * 255); - dest->blue = (guint8) COGL_FIXED_TO_INT (l * 255); + dest->red = (guint8) (l * 255); + dest->green = (guint8) (l * 255); + dest->blue = (guint8) (l * 255); } else { - h = hue + COGL_FIXED_120; + h = hue + 120.0; - while (h > COGL_FIXED_360) - h -= COGL_FIXED_360; + while (h > 360.0) + h -= 360.0; while (h < 0) - h += COGL_FIXED_360; + h += 360.0; - if (h < COGL_FIXED_60) + if (h < 60.0) { - CoglFixed tmp; + float tmp; - tmp = (m1 + COGL_FIXED_FAST_MUL ((m2 - m1), h) / 60); - dest->red = (guint8) COGL_FIXED_TO_INT (tmp * 255); + tmp = (m1 + CLUTTER_FIXED_MUL ((m2 - m1), h) / 60); + dest->red = (guint8) (tmp * 255); } - else if (h < COGL_FIXED_180) - dest->red = (guint8) COGL_FIXED_TO_INT (m2 * 255); - else if (h < COGL_FIXED_240) + else if (h < 180.0) + dest->red = (guint8) (m2 * 255); + else if (h < 240.0) { - CoglFixed tmp; + float tmp; - tmp = (m1 + COGL_FIXED_FAST_MUL ((m2 - m1), (COGL_FIXED_240 - h))) + tmp = (m1 + CLUTTER_FIXED_MUL ((m2 - m1), (240.0 - h))) / 60; - dest->red = (guint8) COGL_FIXED_TO_INT (tmp * 255); + dest->red = (guint8) (tmp * 255); } else - dest->red = (guint8) COGL_FIXED_TO_INT (m1 * 255); + dest->red = (guint8) (m1 * 255); h = hue; - while (h > COGL_FIXED_360) - h -= COGL_FIXED_360; + while (h > 360.0) + h -= 360.0; while (h < 0) - h += COGL_FIXED_360; + h += 360.0; - if (h < COGL_FIXED_60) + if (h < 60.0) { - CoglFixed tmp; + float tmp; - tmp = (m1 + COGL_FIXED_FAST_MUL ((m2 - m1), h) / 60); - dest->green = (guint8) COGL_FIXED_TO_INT (tmp * 255); + tmp = (m1 + CLUTTER_FIXED_MUL ((m2 - m1), h) / 60); + dest->green = (guint8) (tmp * 255); } - else if (h < COGL_FIXED_180) - dest->green = (guint8) COGL_FIXED_TO_INT (m2 * 255); - else if (h < COGL_FIXED_240) + else if (h < 180.0) + dest->green = (guint8) (m2 * 255); + else if (h < 240.0) { - CoglFixed tmp; + float tmp; - tmp = (m1 + COGL_FIXED_FAST_MUL ((m2 - m1) , (COGL_FIXED_240 - h))) + tmp = (m1 + CLUTTER_FIXED_MUL ((m2 - m1) , (240.0 - h))) / 60; - dest->green = (guint8) COGL_FIXED_TO_INT (tmp * 255); + dest->green = (guint8) (tmp * 255); } else - dest->green = (guint8) COGL_FIXED_TO_INT (m1 * 255); + dest->green = (guint8) (m1 * 255); - h = hue - COGL_FIXED_120; + h = hue - 120.0; - while (h > COGL_FIXED_360) - h -= COGL_FIXED_360; + while (h > 360.0) + h -= 360.0; while (h < 0) - h += COGL_FIXED_360; + h += 360.0; - if (h < COGL_FIXED_60) + if (h < 60.0) { - CoglFixed tmp; + float tmp; - tmp = (m1 + COGL_FIXED_FAST_MUL ((m2 - m1), h) / 60); - dest->blue = (guint8) COGL_FIXED_TO_INT (tmp * 255); + tmp = (m1 + CLUTTER_FIXED_MUL ((m2 - m1), h) / 60); + dest->blue = (guint8) (tmp * 255); } - else if (h < COGL_FIXED_180) - dest->blue = (guint8) COGL_FIXED_TO_INT (m2 * 255); - else if (h < COGL_FIXED_240) + else if (h < 180.0) + dest->blue = (guint8) (m2 * 255); + else if (h < 240.0) { - CoglFixed tmp; + float tmp; - tmp = (m1 + COGL_FIXED_FAST_MUL ((m2 - m1), (COGL_FIXED_240 - h))) + tmp = (m1 + CLUTTER_FIXED_MUL ((m2 - m1), (240.0 - h))) / 60; - dest->blue = (guint8) COGL_FIXED_TO_INT (tmp * 255); + dest->blue = (guint8) (tmp * 255); } else - dest->blue = (guint8) COGL_FIXED_TO_INT (m1 * 255); + dest->blue = (guint8) (m1 * 255); } } @@ -371,13 +371,13 @@ clutter_color_to_hls (const ClutterColor *src, clutter_color_to_hlsx (src, &h, &l, &s); if (hue) - *hue = (guint8) COGL_FIXED_TO_INT (h * 255) / 360; + *hue = (guint8) (h * 255) / 360; if (luminance) - *luminance = (guint8) COGL_FIXED_TO_INT (l * 255); + *luminance = (guint8) (l * 255); if (saturation) - *saturation = (guint8) COGL_FIXED_TO_INT (s * 255); + *saturation = (guint8) (s * 255); } /** @@ -399,9 +399,9 @@ clutter_color_from_hls (ClutterColor *dest, { ClutterFixed h, l, s; - h = COGL_FIXED_FROM_INT (hue * 360) / 255; - l = COGL_FIXED_FROM_INT (luminance) / 255; - s = COGL_FIXED_FROM_INT (saturation) / 255; + h = (float)(hue * 360) / 255; + l = (float)(luminance) / 255; + s = (float)(saturation) / 255; clutter_color_from_hlsx (dest, h, l, s); } @@ -420,7 +420,7 @@ clutter_color_shade (const ClutterColor *src, ClutterColor *dest, gdouble shade) { - clutter_color_shadex (src, dest, COGL_FIXED_FROM_FLOAT (shade)); + clutter_color_shadex (src, dest, CLUTTER_FLOAT_TO_FIXED (shade)); } /** @@ -448,15 +448,15 @@ clutter_color_shadex (const ClutterColor *src, clutter_color_to_hlsx (src, &h, &l, &s); - l = COGL_FIXED_FAST_MUL (l, shade); - if (l > COGL_FIXED_1) - l = COGL_FIXED_1; + l = CLUTTER_FIXED_MUL (l, shade); + if (l > 1.0) + l = 1.0; else if (l < 0) l = 0; - s = COGL_FIXED_FAST_MUL (s, shade); - if (s > COGL_FIXED_1) - s = COGL_FIXED_1; + s = CLUTTER_FIXED_MUL (s, shade); + if (s > 1.0) + s = 1.0; else if (s < 0) s = 0; diff --git a/clutter/clutter-fixed.c b/clutter/clutter-fixed.c index af616e6..3027a75 100644 --- a/clutter/clutter-fixed.c +++ b/clutter/clutter-fixed.c @@ -130,42 +130,42 @@ static void clutter_value_transform_fixed_int (const GValue *src, GValue *dest) { - dest->data[0].v_int = COGL_FIXED_TO_INT (src->data[0].v_int); + dest->data[0].v_int = (src->data[0].v_int); } static void clutter_value_transform_fixed_double (const GValue *src, GValue *dest) { - dest->data[0].v_double = COGL_FIXED_TO_DOUBLE (src->data[0].v_int); + dest->data[0].v_double = CLUTTER_FIXED_TO_DOUBLE (src->data[0].v_int); } static void clutter_value_transform_fixed_float (const GValue *src, GValue *dest) { - dest->data[0].v_float = COGL_FIXED_TO_FLOAT (src->data[0].v_int); + dest->data[0].v_float = CLUTTER_FIXED_TO_FLOAT (src->data[0].v_int); } static void clutter_value_transform_int_fixed (const GValue *src, GValue *dest) { - dest->data[0].v_int = COGL_FIXED_FROM_INT (src->data[0].v_int); + dest->data[0].v_int = (float)(src->data[0].v_int); } static void clutter_value_transform_double_fixed (const GValue *src, GValue *dest) { - dest->data[0].v_int = COGL_FIXED_FROM_FLOAT (src->data[0].v_double); + dest->data[0].v_int = CLUTTER_FLOAT_TO_FIXED (src->data[0].v_double); } static void clutter_value_transform_float_fixed (const GValue *src, GValue *dest) { - dest->data[0].v_int = COGL_FIXED_FROM_FLOAT (src->data[0].v_float); + dest->data[0].v_int = CLUTTER_FLOAT_TO_FIXED (src->data[0].v_float); } @@ -268,7 +268,7 @@ param_fixed_validate (GParamSpec *pspec, GValue *value) { ClutterParamSpecFixed *fspec = CLUTTER_PARAM_SPEC_FIXED (pspec); - gint oval = COGL_FIXED_TO_INT (value->data[0].v_int); + gint oval = (value->data[0].v_int); gint min, max, val; g_assert (CLUTTER_IS_PARAM_SPEC_FIXED (pspec)); @@ -279,7 +279,7 @@ param_fixed_validate (GParamSpec *pspec, min = fspec->minimum; max = fspec->maximum; - val = COGL_FIXED_TO_INT (value->data[0].v_int); + val = (value->data[0].v_int); val = CLAMP (val, min, max); if (val != oval) diff --git a/clutter/clutter-fixed.h b/clutter/clutter-fixed.h index 3ae0916..feffc09 100644 --- a/clutter/clutter-fixed.h +++ b/clutter/clutter-fixed.h @@ -39,7 +39,7 @@ G_BEGIN_DECLS * * Fixed point number (16.16) */ -typedef CoglFixed ClutterFixed; +typedef float ClutterFixed; /** * ClutterAngle: @@ -47,7 +47,7 @@ typedef CoglFixed ClutterFixed; * Integer representation of an angle such that 1024 corresponds to * full circle (i.e., 2*Pi). */ -typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ +typedef float ClutterAngle; /* angle such that 1024 == 2*PI */ #define CLUTTER_ANGLE_FROM_DEG(x) (COGL_ANGLE_FROM_DEG (x)) #define CLUTTER_ANGLE_FROM_DEGX(x) (COGL_ANGLE_FROM_DEGX (x)) @@ -70,14 +70,14 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * 1.0 represented as a fixed point value. */ -#define CFX_ONE COGL_FIXED_1 +#define CFX_ONE 1.0 /** * CFX_HALF: * * 0.5 represented as a fixed point value. */ -#define CFX_HALF COGL_FIXED_0_5 +#define CFX_HALF 0.5 /** * CFX_MAX: @@ -98,7 +98,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Fixed point representation of Pi */ -#define CFX_PI COGL_FIXED_PI +#define CFX_PI G_PI /** * CFX_2PI: * @@ -110,43 +110,43 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Fixed point representation of Pi/2 */ -#define CFX_PI_2 COGL_FIXED_PI_2 +#define CFX_PI_2 G_PI_2 /** * CFX_PI_4: * * Fixed point representation of Pi/4 */ -#define CFX_PI_4 COGL_FIXED_PI_4 +#define CFX_PI_4 G_PI_4 /** * CFX_360: * * Fixed point representation of the number 360 */ -#define CFX_360 COGL_FIXED_360 +#define CFX_360 360.0 /** * CFX_240: * * Fixed point representation of the number 240 */ -#define CFX_240 COGL_FIXED_240 +#define CFX_240 240.0 /** * CFX_180: * * Fixed point representation of the number 180 */ -#define CFX_180 COGL_FIXED_180 +#define CFX_180 180.0 /** * CFX_120: * * Fixed point representation of the number 120 */ -#define CFX_120 COGL_FIXED_120 +#define CFX_120 120.0 /** * CFX_60: * * Fixed point representation of the number 60 */ -#define CFX_60 COGL_FIXED_60 +#define CFX_60 60.0 /** * CFX_RADIANS_TO_DEGREES: * @@ -158,7 +158,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Fixed point representation of the number 255 */ -#define CFX_255 COGL_FIXED_255 +#define CFX_255 255.0 /** * CLUTTER_FIXED_TO_FLOAT: @@ -166,7 +166,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Convert a fixed point value to float. */ -#define CLUTTER_FIXED_TO_FLOAT(x) COGL_FIXED_TO_FLOAT ((x)) +#define CLUTTER_FIXED_TO_FLOAT(x) ((x)) /** * CLUTTER_FIXED_TO_DOUBLE: @@ -174,7 +174,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Convert a fixed point value to double. */ -#define CLUTTER_FIXED_TO_DOUBLE(x) COGL_FIXED_TO_DOUBLE ((x)) +#define CLUTTER_FIXED_TO_DOUBLE(x) (double)((x)) /** * CLUTTER_FLOAT_TO_FIXED: @@ -182,7 +182,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Convert a float value to fixed. */ -#define CLUTTER_FLOAT_TO_FIXED(x) COGL_FIXED_FROM_FLOAT ((x)) +#define CLUTTER_FLOAT_TO_FIXED(x) ((x)) /** * CLUTTER_FLOAT_TO_INT: @@ -206,7 +206,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Convert an integer value to fixed point. */ -#define CLUTTER_INT_TO_FIXED(x) COGL_FIXED_FROM_INT ((x)) +#define CLUTTER_INT_TO_FIXED(x) (float)((x)) /** * CLUTTER_FIXED_TO_INT: @@ -216,7 +216,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Since: 0.6 */ -#define CLUTTER_FIXED_TO_INT(x) COGL_FIXED_TO_INT ((x)) +#define CLUTTER_FIXED_TO_INT(x) ((x)) /** * CLUTTER_FIXED_FRACTION: @@ -232,7 +232,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Round down a fixed point value to an integer. */ -#define CLUTTER_FIXED_FLOOR(x) COGL_FIXED_FLOOR ((x)) +#define CLUTTER_FIXED_FLOOR(x) floorf ((x)) /** * CLUTTER_FIXED_CEIL: @@ -240,7 +240,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Round up a fixed point value to an integer. */ -#define CLUTTER_FIXED_CEIL(x) COGL_FIXED_CEIL ((x)) +#define CLUTTER_FIXED_CEIL(x) ceilf ((x)) /** * CLUTTER_FIXED_MUL: @@ -249,7 +249,7 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Multiply two fixed point values */ -#define CLUTTER_FIXED_MUL(x,y) COGL_FIXED_MUL ((x), (y)) +#define CLUTTER_FIXED_MUL(x,y) ((x) * (y)) /** * CLUTTER_FIXED_DIV: @@ -258,18 +258,18 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ * * Divide two fixed point values */ -#define CLUTTER_FIXED_DIV(x,y) COGL_FIXED_DIV ((x), (y)) +#define CLUTTER_FIXED_DIV(x,y) ((x) / (y)) -#define clutter_qmulx(x,y) cogl_fixed_mul ((x), (y)) -#define clutter_qdivx(x,y) cogl_fixed_div ((x), (y)) +#define clutter_qmulx(x,y) ((x) * (y)) +#define clutter_qdivx(x,y) ((x) / (y)) -#define clutter_sinx(a) cogl_fixed_sin ((a)) -#define clutter_sini(a) cogl_angle_sin ((a)) -#define clutter_tani(a) cogl_angle_tan ((a)) -#define clutter_atani(a) cogl_fixed_atan ((a)) -#define clutter_atan2i(x,y) cogl_fixed_atan2 ((x), (y)) -#define clutter_cosx(a) cogl_fixed_cos ((a)) -#define clutter_cosi(a) cogl_angle_cos ((a)) +#define clutter_sinx(a) sinf ((a)) +#define clutter_sini(a) sinf ((a * (G_PI/180.0))) +#define clutter_tani(a) tanf ((a * (G_PI/180.0))) +#define clutter_atani(a) atanf ((a)) +#define clutter_atan2i(x,y) atan2f ((x), (y)) +#define clutter_cosx(a) cosf ((a)) +#define clutter_cosi(a) cosf ((a * (G_PI/180.0))) /** * CLUTTER_SQRTI_ARG_MAX @@ -300,12 +300,12 @@ typedef CoglAngle ClutterAngle; /* angle such that 1024 == 2*PI */ */ #define CLUTTER_SQRTI_ARG_10_PERCENT COGL_SQRTI_ARG_10_PERCENT -#define clutter_sqrtx(x) cogl_fixed_sqrt ((x)) +#define clutter_sqrtx(x) sqrtf ((x)) #define clutter_sqrti(x) cogl_sqrti ((x)) -#define clutter_log2x(x) cogl_fixed_log2 ((x)) -#define clutter_pow2x(x) cogl_fixed_pow2 ((x)) -#define clutter_powx(x,y) cogl_fixed_pow ((x), (y)) +#define clutter_log2x(x) log2f ((x)) +#define clutter_pow2x(x) pow2f ((x)) +#define clutter_powx(x,y) powf ((x), (y)) #define CLUTTER_TYPE_FIXED (clutter_fixed_get_type ()) #define CLUTTER_TYPE_PARAM_FIXED (clutter_param_fixed_get_type ()) diff --git a/clutter/clutter-interval.c b/clutter/clutter-interval.c index efdf58d..ea98ce1 100644 --- a/clutter/clutter-interval.c +++ b/clutter/clutter-interval.c @@ -280,7 +280,7 @@ clutter_interval_real_compute_value (ClutterInterval *interval, break; case G_TYPE_BOOLEAN: - if (COGL_FIXED_FROM_FLOAT (factor) > COGL_FIXED_0_5) + if (CLUTTER_FLOAT_TO_FIXED (factor) > 0.5) g_value_set_boolean (value, TRUE); else g_value_set_boolean (value, FALSE); diff --git a/clutter/clutter-stage.c b/clutter/clutter-stage.c index 6a4e850..e72a10d 100644 --- a/clutter/clutter-stage.c +++ b/clutter/clutter-stage.c @@ -815,15 +815,15 @@ clutter_stage_init (ClutterStage *self) priv->color = default_stage_color; - priv->perspective.fovy = COGL_FIXED_60; /* 60 Degrees */ - priv->perspective.aspect = COGL_FIXED_1; - priv->perspective.z_near = COGL_FIXED_FROM_FLOAT (0.1); - priv->perspective.z_far = COGL_FIXED_FROM_FLOAT (100.0); + priv->perspective.fovy = 60.0; /* 60 Degrees */ + priv->perspective.aspect = 1.0; + priv->perspective.z_near = CLUTTER_FLOAT_TO_FIXED (0.1); + priv->perspective.z_far = CLUTTER_FLOAT_TO_FIXED (100.0); /* depth cueing */ - priv->fog.density = COGL_FIXED_FROM_FLOAT (0.1); - priv->fog.z_near = COGL_FIXED_FROM_FLOAT (1.0); - priv->fog.z_far = COGL_FIXED_FROM_FLOAT (2.0); + priv->fog.density = CLUTTER_FLOAT_TO_FIXED (0.1); + priv->fog.z_near = CLUTTER_FLOAT_TO_FIXED (1.0); + priv->fog.z_far = CLUTTER_FLOAT_TO_FIXED (2.0); clutter_actor_set_reactive (CLUTTER_ACTOR (self), TRUE); clutter_stage_set_key_focus (self, NULL); @@ -979,10 +979,10 @@ clutter_stage_set_perspective (ClutterStage *stage, priv = stage->priv; - priv->perspective.fovy = COGL_FIXED_FROM_FLOAT (fovy); - priv->perspective.aspect = COGL_FIXED_FROM_FLOAT (aspect); - priv->perspective.z_near = COGL_FIXED_FROM_FLOAT (z_near); - priv->perspective.z_far = COGL_FIXED_FROM_FLOAT (z_far); + priv->perspective.fovy = CLUTTER_FLOAT_TO_FIXED (fovy); + priv->perspective.aspect = CLUTTER_FLOAT_TO_FIXED (aspect); + priv->perspective.z_near = CLUTTER_FLOAT_TO_FIXED (z_near); + priv->perspective.z_far = CLUTTER_FLOAT_TO_FIXED (z_far); /* this will cause the viewport to be reset; see * clutter_maybe_setup_viewport() inside clutter-main.c @@ -1018,16 +1018,16 @@ clutter_stage_get_perspective (ClutterStage *stage, priv = stage->priv; if (fovy) - *fovy = COGL_FIXED_TO_FLOAT (priv->perspective.fovy); + *fovy = CLUTTER_FIXED_TO_FLOAT (priv->perspective.fovy); if (aspect) - *aspect = COGL_FIXED_TO_FLOAT (priv->perspective.aspect); + *aspect = CLUTTER_FIXED_TO_FLOAT (priv->perspective.aspect); if (z_near) - *z_near = COGL_FIXED_TO_FLOAT (priv->perspective.z_near); + *z_near = CLUTTER_FIXED_TO_FLOAT (priv->perspective.z_near); if (z_far) - *z_far = COGL_FIXED_TO_FLOAT (priv->perspective.z_far); + *z_far = CLUTTER_FIXED_TO_FLOAT (priv->perspective.z_far); } /** @@ -1627,11 +1627,11 @@ clutter_stage_get_fog (ClutterStage *stage, priv = stage->priv; if (density) - *density = COGL_FIXED_TO_FLOAT (priv->fog.density); + *density = CLUTTER_FIXED_TO_FLOAT (priv->fog.density); if (z_near) - *z_near = COGL_FIXED_TO_FLOAT (priv->fog.z_near); + *z_near = CLUTTER_FIXED_TO_FLOAT (priv->fog.z_near); if (z_far) - *z_far = COGL_FIXED_TO_FLOAT (priv->fog.z_far); + *z_far = CLUTTER_FIXED_TO_FLOAT (priv->fog.z_far); } /** @@ -1663,9 +1663,9 @@ clutter_stage_set_fog (ClutterStage *stage, priv = stage->priv; - priv->fog.density = COGL_FIXED_FROM_FLOAT (density); - priv->fog.z_near = COGL_FIXED_FROM_FLOAT (z_near); - priv->fog.z_far = COGL_FIXED_FROM_FLOAT (z_far); + priv->fog.density = CLUTTER_FLOAT_TO_FIXED (density); + priv->fog.z_near = CLUTTER_FLOAT_TO_FIXED (z_near); + priv->fog.z_far = CLUTTER_FLOAT_TO_FIXED (z_far); if (priv->use_fog && CLUTTER_ACTOR_IS_VISIBLE (stage)) clutter_actor_queue_redraw (CLUTTER_ACTOR (stage)); @@ -1761,7 +1761,7 @@ clutter_stage_get_resolutionx (ClutterStage *stage) res = clutter_backend_get_resolution (context->backend); - return COGL_FIXED_FROM_FLOAT (res); + return CLUTTER_FLOAT_TO_FIXED (res); } /*** Perspective boxed type ******/ diff --git a/clutter/clutter-texture.c b/clutter/clutter-texture.c index d081b38..b0b46e4 100644 --- a/clutter/clutter-texture.c +++ b/clutter/clutter-texture.c @@ -343,13 +343,13 @@ clutter_texture_get_preferred_width (ClutterActor *self, /* Set the natural width so as to preserve the aspect ratio */ ClutterFixed ratio, height; - ratio = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (priv->width), - COGL_FIXED_FROM_INT (priv->height)); + ratio = CLUTTER_FIXED_DIV ((float)(priv->width), + (float)(priv->height)); height = CLUTTER_UNITS_TO_FIXED (for_height); *natural_width_p = - CLUTTER_UNITS_FROM_FIXED (COGL_FIXED_MUL (ratio, height)); + CLUTTER_UNITS_FROM_FIXED (CLUTTER_FIXED_MUL (ratio, height)); } } } @@ -388,13 +388,13 @@ clutter_texture_get_preferred_height (ClutterActor *self, /* Set the natural height so as to preserve the aspect ratio */ ClutterFixed ratio, width; - ratio = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (priv->height), - COGL_FIXED_FROM_INT (priv->width)); + ratio = CLUTTER_FIXED_DIV ((float)(priv->height), + (float)(priv->width)); width = CLUTTER_UNITS_TO_FIXED (for_width); *natural_height_p = - CLUTTER_UNITS_FROM_FIXED (COGL_FIXED_MUL (ratio, width)); + CLUTTER_UNITS_FROM_FIXED (CLUTTER_FIXED_MUL (ratio, width)); } } } @@ -463,24 +463,24 @@ clutter_texture_set_fbo_projection (ClutterActor *self) /* Convert the coordinates back to [-1,1] range */ cogl_get_viewport (viewport); - tx_min = COGL_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (x_min), viewport[2]) - * 2 - COGL_FIXED_1; - tx_max = COGL_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (x_max), viewport[2]) - * 2 - COGL_FIXED_1; - ty_min = COGL_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (y_min), viewport[3]) - * 2 - COGL_FIXED_1; - ty_max = COGL_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (y_max), viewport[3]) - * 2 - COGL_FIXED_1; + tx_min = CLUTTER_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (x_min), viewport[2]) + * 2 - 1.0; + tx_max = CLUTTER_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (x_max), viewport[2]) + * 2 - 1.0; + ty_min = CLUTTER_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (y_min), viewport[3]) + * 2 - 1.0; + ty_max = CLUTTER_FIXED_DIV (CLUTTER_UNITS_TO_FIXED (y_max), viewport[3]) + * 2 - 1.0; /* Set up a projection matrix so that the actor will be projected as if it was drawn at its original location */ - tan_angle = cogl_angle_tan (COGL_ANGLE_FROM_DEGX (perspective.fovy / 2)); - near_size = COGL_FIXED_MUL (perspective.z_near, tan_angle); + tan_angle = tanf (COGL_ANGLE_FROM_DEGX (perspective.fovy / 2 * (G_PI/180.0))); + near_size = CLUTTER_FIXED_MUL (perspective.z_near, tan_angle); - cogl_frustum (COGL_FIXED_MUL (tx_min, near_size), - COGL_FIXED_MUL (tx_max, near_size), - COGL_FIXED_MUL (-ty_min, near_size), - COGL_FIXED_MUL (-ty_max, near_size), + cogl_frustum (CLUTTER_FIXED_MUL (tx_min, near_size), + CLUTTER_FIXED_MUL (tx_max, near_size), + CLUTTER_FIXED_MUL (-ty_min, near_size), + CLUTTER_FIXED_MUL (-ty_max, near_size), perspective.z_near, perspective.z_far); } @@ -594,21 +594,21 @@ clutter_texture_paint (ClutterActor *self) clutter_actor_get_opacity (self)); if (priv->repeat_x && priv->width > 0) - t_w = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (x_2 - x_1), - COGL_FIXED_FROM_INT (priv->width)); + t_w = CLUTTER_FIXED_DIV ((float)(x_2 - x_1), + (float)(priv->width)); else - t_w = COGL_FIXED_1; + t_w = 1.0; if (priv->repeat_y && priv->height > 0) - t_h = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (y_2 - y_1), - COGL_FIXED_FROM_INT (priv->height)); + t_h = CLUTTER_FIXED_DIV ((float)(y_2 - y_1), + (float)(priv->height)); else - t_h = COGL_FIXED_1; + t_h = 1.0; /* Paint will have translated us */ cogl_texture_rectangle (priv->texture, 0, 0, - COGL_FIXED_FROM_INT (x_2 - x_1), - COGL_FIXED_FROM_INT (y_2 - y_1), + (float)(x_2 - x_1), + (float)(y_2 - y_1), 0, 0, t_w, t_h); } diff --git a/clutter/clutter-timeline.c b/clutter/clutter-timeline.c index 0841a30..b9df23b 100644 --- a/clutter/clutter-timeline.c +++ b/clutter/clutter-timeline.c @@ -1347,7 +1347,7 @@ clutter_timeline_get_progress (ClutterTimeline *timeline) { g_return_val_if_fail (CLUTTER_IS_TIMELINE (timeline), 0.); - return COGL_FIXED_TO_DOUBLE (clutter_timeline_get_progressx (timeline)); + return CLUTTER_FIXED_TO_DOUBLE (clutter_timeline_get_progressx (timeline)); } /** @@ -1370,11 +1370,11 @@ clutter_timeline_get_progressx (ClutterTimeline *timeline) priv = timeline->priv; - progress = COGL_FIXED_DIV (COGL_FIXED_FROM_INT (priv->current_frame_num), - COGL_FIXED_FROM_INT (priv->n_frames)); + progress = CLUTTER_FIXED_DIV ((float)(priv->current_frame_num), + (float)(priv->n_frames)); if (priv->direction == CLUTTER_TIMELINE_BACKWARD) - progress = COGL_FIXED_1 - progress; + progress = 1.0 - progress; return progress; } diff --git a/clutter/clutter-units.h b/clutter/clutter-units.h index b85375a..27d539c 100644 --- a/clutter/clutter-units.h +++ b/clutter/clutter-units.h @@ -50,11 +50,11 @@ typedef gint32 ClutterUnit; * decide to change this relationship in the future. */ -#define CLUTTER_UNITS_FROM_INT(x) (COGL_FIXED_FROM_INT ((x))) -#define CLUTTER_UNITS_TO_INT(x) (COGL_FIXED_TO_INT ((x))) +#define CLUTTER_UNITS_FROM_INT(x) ((float)((x))) +#define CLUTTER_UNITS_TO_INT(x) ( ((x))) -#define CLUTTER_UNITS_FROM_FLOAT(x) (COGL_FIXED_FROM_FLOAT ((x))) -#define CLUTTER_UNITS_TO_FLOAT(x) (COGL_FIXED_TO_FLOAT ((x))) +#define CLUTTER_UNITS_FROM_FLOAT(x) ( ((x))) +#define CLUTTER_UNITS_TO_FLOAT(x) ( ((x))) #define CLUTTER_UNITS_FROM_FIXED(x) (x) #define CLUTTER_UNITS_TO_FIXED(x) (x) diff --git a/clutter/cogl/cogl-color.h b/clutter/cogl/cogl-color.h index fbc49d5..6cdf52b 100644 --- a/clutter/cogl/cogl-color.h +++ b/clutter/cogl/cogl-color.h @@ -70,20 +70,20 @@ void cogl_color_set_from_4d (CoglColor *dest, /** * cogl_color_set_from_4x: * @dest: return location for a #CoglColor - * @red: value of the red channel, between 0 and %COGL_FIXED_1 - * @green: value of the green channel, between 0 and %COGL_FIXED_1 - * @blue: value of the blue channel, between 0 and %COGL_FIXED_1 - * @alpha: value of the alpha channel, between 0 and %COGL_FIXED_1 + * @red: value of the red channel, between 0 and %1.0 + * @green: value of the green channel, between 0 and %1.0 + * @blue: value of the blue channel, between 0 and %1.0 + * @alpha: value of the alpha channel, between 0 and %1.0 * * Sets the values of the passed channels into a #CoglColor * * Since: 1.0 */ void cogl_color_set_from_4x (CoglColor *dest, - CoglFixed red, - CoglFixed green, - CoglFixed blue, - CoglFixed alpha); + float red, + float green, + float blue, + float alpha); /** * cogl_color_get_red_byte: @@ -194,52 +194,52 @@ float cogl_color_get_alpha_float (const CoglColor *color); * @color: a #CoglColor * * Retrieves the red channel of @color as a fixed point - * value between 0 and %COGL_FIXED_1. + * value between 0 and %1.0. * * Return value: the red channel of the passed color * * Since: 1.0 */ -CoglFixed cogl_color_get_red (const CoglColor *color); +float cogl_color_get_red (const CoglColor *color); /** * cogl_color_get_green: * @color: a #CoglColor * * Retrieves the green channel of @color as a fixed point - * value between 0 and %COGL_FIXED_1. + * value between 0 and %1.0. * * Return value: the green channel of the passed color * * Since: 1.0 */ -CoglFixed cogl_color_get_green (const CoglColor *color); +float cogl_color_get_green (const CoglColor *color); /** * cogl_color_get_blue: * @color: a #CoglColor * * Retrieves the blue channel of @color as a fixed point - * value between 0 and %COGL_FIXED_1. + * value between 0 and %1.0. * * Return value: the blue channel of the passed color * * Since: 1.0 */ -CoglFixed cogl_color_get_blue (const CoglColor *color); +float cogl_color_get_blue (const CoglColor *color); /** * cogl_color_get_alpha: * @color: a #CoglColor * * Retrieves the alpha channel of @color as a fixed point - * value between 0 and %COGL_FIXED_1. + * value between 0 and %1.0. * * Return value: the alpha channel of the passed color * * Since: 1.0 */ -CoglFixed cogl_color_get_alpha (const CoglColor *color); +float cogl_color_get_alpha (const CoglColor *color); /** * cogl_set_source_color: @@ -277,24 +277,24 @@ void cogl_set_source_color4ub (guint8 red, /** * cogl_set_source_color4x: - * @red: value of the red channel, between 0 and %COGL_FIXED_1 - * @green: value of the green channel, between 0 and %COGL_FIXED_1 - * @blue: value of the blue channel, between 0 and %COGL_FIXED_1 - * @alpha: value of the alpha channel, between 0 and %COGL_FIXED_1 + * @red: value of the red channel, between 0 and %1.0 + * @green: value of the green channel, between 0 and %1.0 + * @blue: value of the blue channel, between 0 and %1.0 + * @alpha: value of the alpha channel, between 0 and %1.0 * * Sets the source color using normalized values for each component. * This color will be used for any subsequent drawing operation. * * The value for each component is a fixed point number in the range - * between 0 and %COGL_FIXED_1. If the values passed in are outside that + * between 0 and %1.0. If the values passed in are outside that * range, they will be clamped. * * Since: 1.0 */ -void cogl_set_source_color4x (CoglFixed red, - CoglFixed green, - CoglFixed blue, - CoglFixed alpha); +void cogl_set_source_color4x (float red, + float green, + float blue, + float alpha); G_END_DECLS diff --git a/clutter/cogl/cogl-path.h b/clutter/cogl/cogl-path.h index 20632da..0d29829 100644 --- a/clutter/cogl/cogl-path.h +++ b/clutter/cogl/cogl-path.h @@ -74,10 +74,10 @@ void cogl_rectangle (gint x, * * A fixed-point version of cogl_fast_fill_rectangle. **/ -void cogl_rectanglex (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height); +void cogl_rectanglex (float x, + float y, + float width, + float height); /** * cogl_path_fill: @@ -136,8 +136,8 @@ void cogl_path_new (void); * Moves the pen to the given location. If there is an existing path * this will start a new disjoint subpath. **/ -void cogl_path_move_to (CoglFixed x, - CoglFixed y); +void cogl_path_move_to (float x, + float y); /** @@ -149,8 +149,8 @@ void cogl_path_move_to (CoglFixed x, * location. If there is an existing path this will start a new * disjoint subpath. **/ -void cogl_path_rel_move_to (CoglFixed x, - CoglFixed y); +void cogl_path_rel_move_to (float x, + float y); /** * cogl_path_line_to: @@ -160,8 +160,8 @@ void cogl_path_rel_move_to (CoglFixed x, * Adds a straight line segment to the current path that ends at the * given coordinates. **/ -void cogl_path_line_to (CoglFixed x, - CoglFixed y); +void cogl_path_line_to (float x, + float y); /** * cogl_path_rel_line_to: @@ -171,8 +171,8 @@ void cogl_path_line_to (CoglFixed x, * Adds a straight line segment to the current path that ends at the * given coordinates relative to the current pen location. **/ -void cogl_path_rel_line_to (CoglFixed x, - CoglFixed y); +void cogl_path_rel_line_to (float x, + float y); /** @@ -189,12 +189,12 @@ void cogl_path_rel_line_to (CoglFixed x, * of the arc. If you perform a move_to to the arcs start just before * drawing it you create a free standing arc. **/ -void cogl_path_arc (CoglFixed center_x, - CoglFixed center_y, - CoglFixed radius_x, - CoglFixed radius_y, - CoglAngle angle_1, - CoglAngle angle_2); +void cogl_path_arc (float center_x, + float center_y, + float radius_x, + float radius_y, + float angle_1, + float angle_2); @@ -211,12 +211,12 @@ void cogl_path_arc (CoglFixed center_x, * second, third and fourth control points and using current pen location * as the first control point. **/ -void cogl_path_curve_to (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed x3, - CoglFixed y3); +void cogl_path_curve_to (float x1, + float y1, + float x2, + float y2, + float x3, + float y3); /** * cogl_path_rel_curve_to: @@ -232,12 +232,12 @@ void cogl_path_curve_to (CoglFixed x1, * as the first control point. The given coordinates are relative to the * current pen location. */ -void cogl_path_rel_curve_to (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed x3, - CoglFixed y3); +void cogl_path_rel_curve_to (float x1, + float y1, + float x2, + float y2, + float x3, + float y3); /** * cogl_path_close: @@ -258,10 +258,10 @@ void cogl_path_close (void); * coordinates. If there is an existing path this will start a new * disjoint sub-path. **/ -void cogl_path_line (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2); +void cogl_path_line (float x1, + float y1, + float x2, + float y2); /** * cogl_path_polyline: @@ -281,7 +281,7 @@ void cogl_path_line (CoglFixed x1, * fashion for the rest of the vertices. (num_points - 1) segments will * be constructed. **/ -void cogl_path_polyline (CoglFixed *coords, +void cogl_path_polyline (float *coords, gint num_points); @@ -299,7 +299,7 @@ void cogl_path_polyline (CoglFixed *coords, * represents the Y coordinate of the first vertex, continuing in the same * fashion for the rest of the vertices. **/ -void cogl_path_polygon (CoglFixed *coords, +void cogl_path_polygon (float *coords, gint num_points); @@ -313,10 +313,10 @@ void cogl_path_polygon (CoglFixed *coords, * Constructs a rectangular shape at the given coordinates. If there * is an existing path this will start a new disjoint sub-path. **/ -void cogl_path_rectangle (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height); +void cogl_path_rectangle (float x, + float y, + float width, + float height); /** * cogl_path_ellipse: @@ -328,10 +328,10 @@ void cogl_path_rectangle (CoglFixed x, * Constructs an ellipse shape. If there is an existing path this will * start a new disjoint sub-path. **/ -void cogl_path_ellipse (CoglFixed center_x, - CoglFixed center_y, - CoglFixed radius_x, - CoglFixed radius_y); +void cogl_path_ellipse (float center_x, + float center_y, + float radius_x, + float radius_y); /** * cogl_path_round_rectangle: @@ -346,12 +346,12 @@ void cogl_path_ellipse (CoglFixed center_x, * Constructs a rectangular shape with rounded corners. If there is an * existing path this will start a new disjoint sub-path. **/ -void cogl_path_round_rectangle (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height, - CoglFixed radius, - CoglAngle arc_step); +void cogl_path_round_rectangle (float x, + float y, + float width, + float height, + float radius, + float arc_step); G_END_DECLS diff --git a/clutter/cogl/cogl-texture.h b/clutter/cogl/cogl-texture.h index cee2f43..5ae3e28 100644 --- a/clutter/cogl/cogl-texture.h +++ b/clutter/cogl/cogl-texture.h @@ -368,14 +368,14 @@ void cogl_texture_unref (CoglHandle handle); * texture pass in @tx1=0.0 @ty1=0.0 @tx2=1.0 @ty2=1.0. */ void cogl_texture_rectangle (CoglHandle handle, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2); + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2); /** * cogl_texture_polygon: @@ -455,7 +455,7 @@ void cogl_bitmap_free (CoglBitmap *bmp); * significant performance boost to use this function rather than * calling cogl_texture_rectangle() separately for each rectangle. * - * @verts should point to an array of #CoglFixeds with + * @verts should point to an array of #floats with * @n_rects * 8 elements. Each group of 8 values corresponds to the * parameters x1, y1, x2, y2, tx1, ty1, tx2 and ty2 and have the same * meaning as in cogl_texture_rectangle(). @@ -464,7 +464,7 @@ void cogl_bitmap_free (CoglBitmap *bmp); */ void cogl_texture_multiple_rectangles (CoglHandle handle, - const CoglFixed *verts, + const float *verts, guint n_rects); G_END_DECLS diff --git a/clutter/cogl/cogl-types.h b/clutter/cogl/cogl-types.h index ece3270..b11091a 100644 --- a/clutter/cogl/cogl-types.h +++ b/clutter/cogl/cogl-types.h @@ -264,8 +264,8 @@ struct _CoglColor */ struct _CoglTextureVertex { - CoglFixed x, y, z; - CoglFixed tx, ty; + float x, y, z; + float tx, ty; CoglColor color; }; diff --git a/clutter/cogl/cogl.h.in b/clutter/cogl/cogl.h.in index ea81c7b..cc26f88 100644 --- a/clutter/cogl/cogl.h.in +++ b/clutter/cogl/cogl.h.in @@ -143,10 +143,10 @@ void cogl_get_bitmasks (gint *red, * Replaces the current projection matrix with a perspective matrix * based on the provided values. */ -void cogl_perspective (CoglFixed fovy, - CoglFixed aspect, - CoglFixed z_near, - CoglFixed z_far); +void cogl_perspective (float fovy, + float aspect, + float z_near, + float z_far); /** * cogl_frustum: @@ -162,12 +162,12 @@ void cogl_perspective (CoglFixed fovy, * * Since: 0.8.2 */ -void cogl_frustum (CoglFixed left, - CoglFixed right, - CoglFixed bottom, - CoglFixed top, - CoglFixed z_near, - CoglFixed z_far); +void cogl_frustum (float left, + float right, + float bottom, + float top, + float z_near, + float z_far); /** * cogl_setup_viewport: @@ -187,10 +187,10 @@ void cogl_frustum (CoglFixed left, */ void cogl_setup_viewport (guint width, guint height, - CoglFixed fovy, - CoglFixed aspect, - CoglFixed z_near, - CoglFixed z_far); + float fovy, + float aspect, + float z_near, + float z_far); /** * cogl_viewport: @@ -227,8 +227,8 @@ void cogl_pop_matrix (void); * Multiplies the current model-view matrix by one that scales the x * and y axes by the given values. */ -void cogl_scale (CoglFixed x, - CoglFixed y); +void cogl_scale (float x, + float y); /** * cogl_translatex: @@ -239,9 +239,9 @@ void cogl_scale (CoglFixed x, * Multiplies the current model-view matrix by one that translates the * model along all three axes according to the given values. */ -void cogl_translatex (CoglFixed x, - CoglFixed y, - CoglFixed z); +void cogl_translatex (float x, + float y, + float z); /** * cogl_translate: @@ -270,7 +270,7 @@ void cogl_translate (gint x, * degrees about the vertex (0, 0, 1) causes a small counter-clockwise * rotation. */ -void cogl_rotatex (CoglFixed angle, +void cogl_rotatex (float angle, gint x, gint y, gint z); @@ -293,32 +293,32 @@ void cogl_rotate (gint angle, /** * cogl_get_modelview_matrix: - * @m: pointer to a 4x4 array of #CoglFixeds to receive the matrix + * @m: pointer to a 4x4 array of #floats to receive the matrix * * Stores the current model-view matrix in @m. The matrix is in * column-major order. */ -void cogl_get_modelview_matrix (CoglFixed m[16]); +void cogl_get_modelview_matrix (float m[16]); /** * cogl_get_projection_matrix: - * @m: pointer to a 4x4 array of #CoglFixeds to receive the matrix + * @m: pointer to a 4x4 array of #floats to receive the matrix * * Stores the current projection matrix in @m. The matrix is in * column-major order. */ -void cogl_get_projection_matrix (CoglFixed m[16]); +void cogl_get_projection_matrix (float m[16]); /** * cogl_get_viewport: - * @v: pointer to a 4 element array of #CoglFixeds to + * @v: pointer to a 4 element array of #floats to * receive the viewport dimensions. * * Stores the current viewport in @v. @v[0] and @v[1] get the x and y * position of the viewport and @v[2] and @v[3] get the width and * height. */ -void cogl_get_viewport (CoglFixed v[4]); +void cogl_get_viewport (float v[4]); /** * cogl_clip_set: @@ -336,10 +336,10 @@ void cogl_get_viewport (CoglFixed v[4]); * The rectangle is intersected with the current clip region. To undo * the effect of this function, call cogl_clip_unset(). */ -void cogl_clip_set (CoglFixed x_offset, - CoglFixed y_offset, - CoglFixed width, - CoglFixed height); +void cogl_clip_set (float x_offset, + float y_offset, + float width, + float height); /** * cogl_clip_set_from_path: @@ -443,7 +443,7 @@ void cogl_enable_backface_culling (gboolean setting); * initial reference value is 1.0. */ void cogl_alpha_func (COGLenum func, - CoglFixed ref); + float ref); /** * cogl_fog_set: @@ -460,9 +460,9 @@ void cogl_alpha_func (COGLenum func, * cogl_paint_init(). */ void cogl_fog_set (const CoglColor *fog_color, - CoglFixed density, - CoglFixed z_near, - CoglFixed z_far); + float density, + float z_near, + float z_far); /** * cogl_paint_init: diff --git a/clutter/cogl/common/cogl-clip-stack.c b/clutter/cogl/common/cogl-clip-stack.c index c533b0b..9d8a623 100644 --- a/clutter/cogl/common/cogl-clip-stack.c +++ b/clutter/cogl/common/cogl-clip-stack.c @@ -35,24 +35,24 @@ /* These are defined in the particular backend (float in GL vs fixed in GL ES) */ -void _cogl_set_clip_planes (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height); -void _cogl_add_stencil_clip (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height, +void _cogl_set_clip_planes (float x, + float y, + float width, + float height); +void _cogl_add_stencil_clip (float x, + float y, + float width, + float height, gboolean first); -void _cogl_add_path_to_stencil_buffer (CoglFixedVec2 nodes_min, - CoglFixedVec2 nodes_max, +void _cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, + floatVec2 nodes_max, guint path_size, CoglPathNode *path, gboolean merge); void _cogl_enable_clip_planes (void); void _cogl_disable_clip_planes (void); void _cogl_disable_stencil_buffer (void); -void _cogl_set_matrix (const CoglFixed *matrix); +void _cogl_set_matrix (const float *matrix); typedef struct _CoglClipStack CoglClipStack; @@ -75,13 +75,13 @@ struct _CoglClipStackEntryRect CoglClipStackEntryType type; /* The rectangle for this clip */ - CoglFixed x_offset; - CoglFixed y_offset; - CoglFixed width; - CoglFixed height; + float x_offset; + float y_offset; + float width; + float height; /* The matrix that was current when the clip was set */ - CoglFixed matrix[16]; + float matrix[16]; }; struct _CoglClipStackEntryPath @@ -89,20 +89,20 @@ struct _CoglClipStackEntryPath CoglClipStackEntryType type; /* The matrix that was current when the clip was set */ - CoglFixed matrix[16]; + float matrix[16]; - CoglFixedVec2 path_nodes_min; - CoglFixedVec2 path_nodes_max; + floatVec2 path_nodes_min; + floatVec2 path_nodes_max; guint path_size; CoglPathNode path[1]; }; void -cogl_clip_set (CoglFixed x_offset, - CoglFixed y_offset, - CoglFixed width, - CoglFixed height) +cogl_clip_set (float x_offset, + float y_offset, + float width, + float height) { CoglClipStackEntryRect *entry; CoglClipStack *stack; diff --git a/clutter/cogl/common/cogl-color.c b/clutter/cogl/common/cogl-color.c index a248b95..dac3584 100644 --- a/clutter/cogl/common/cogl-color.c +++ b/clutter/cogl/common/cogl-color.c @@ -59,17 +59,17 @@ cogl_color_set_from_4d (CoglColor *dest, void cogl_color_set_from_4x (CoglColor *dest, - CoglFixed red, - CoglFixed green, - CoglFixed blue, - CoglFixed alpha) + float red, + float green, + float blue, + float alpha) { g_return_if_fail (dest != NULL); - dest->red = COGL_FIXED_TO_INT (red * 255); - dest->green = COGL_FIXED_TO_INT (green * 255); - dest->blue = COGL_FIXED_TO_INT (blue * 255); - dest->alpha = COGL_FIXED_TO_INT (alpha * 255); + dest->red = (red * 255); + dest->green = (green * 255); + dest->blue = (blue * 255); + dest->alpha = (alpha * 255); } unsigned char @@ -84,10 +84,10 @@ cogl_color_get_red_float (const CoglColor *color) return (float) color->red / 255.0; } -CoglFixed +float cogl_color_get_red (const CoglColor *color) { - return COGL_FIXED_FROM_FLOAT ((float) color->red / 255.0); + return ((float) color->red / 255.0); } unsigned char @@ -102,10 +102,10 @@ cogl_color_get_green_float (const CoglColor *color) return (float) color->green / 255.0; } -CoglFixed +float cogl_color_get_green (const CoglColor *color) { - return COGL_FIXED_FROM_FLOAT ((float) color->green / 255.0); + return ((float) color->green / 255.0); } unsigned char @@ -120,10 +120,10 @@ cogl_color_get_blue_float (const CoglColor *color) return (float) color->blue / 255.0; } -CoglFixed +float cogl_color_get_blue (const CoglColor *color) { - return COGL_FIXED_FROM_FLOAT ((float) color->blue / 255.0); + return ((float) color->blue / 255.0); } unsigned char @@ -138,10 +138,10 @@ cogl_color_get_alpha_float (const CoglColor *color) return (float) color->alpha / 255.0; } -CoglFixed +float cogl_color_get_alpha (const CoglColor *color) { - return COGL_FIXED_FROM_FLOAT ((float) color->alpha / 255.0); + return ((float) color->alpha / 255.0); } void @@ -157,10 +157,10 @@ cogl_set_source_color4ub (guint8 red, } void -cogl_set_source_color4x (CoglFixed red, - CoglFixed green, - CoglFixed blue, - CoglFixed alpha) +cogl_set_source_color4x (float red, + float green, + float blue, + float alpha) { CoglColor c = { 0, }; diff --git a/clutter/cogl/common/cogl-primitives.c b/clutter/cogl/common/cogl-primitives.c index a063331..27e0e36 100644 --- a/clutter/cogl/common/cogl-primitives.c +++ b/clutter/cogl/common/cogl-primitives.c @@ -38,18 +38,18 @@ /* these are defined in the particular backend(float in gl vs fixed in gles)*/ void _cogl_path_add_node (gboolean new_sub_path, - CoglFixed x, - CoglFixed y); + float x, + float y); void _cogl_path_fill_nodes (); void _cogl_path_stroke_nodes (); void _cogl_rectangle (gint x, gint y, guint width, guint height); -void _cogl_rectanglex (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height); +void _cogl_rectanglex (float x, + float y, + float width, + float height); void cogl_rectangle (gint x, gint y, @@ -62,10 +62,10 @@ cogl_rectangle (gint x, } void -cogl_rectanglex (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height) +cogl_rectanglex (float x, + float y, + float width, + float height) { cogl_clip_ensure (); @@ -116,8 +116,8 @@ cogl_path_stroke_preserve (void) } void -cogl_path_move_to (CoglFixed x, - CoglFixed y) +cogl_path_move_to (float x, + float y) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -132,8 +132,8 @@ cogl_path_move_to (CoglFixed x, } void -cogl_path_rel_move_to (CoglFixed x, - CoglFixed y) +cogl_path_rel_move_to (float x, + float y) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -142,8 +142,8 @@ cogl_path_rel_move_to (CoglFixed x, } void -cogl_path_line_to (CoglFixed x, - CoglFixed y) +cogl_path_line_to (float x, + float y) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -154,8 +154,8 @@ cogl_path_line_to (CoglFixed x, } void -cogl_path_rel_line_to (CoglFixed x, - CoglFixed y) +cogl_path_rel_line_to (float x, + float y) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -181,17 +181,17 @@ cogl_path_new (void) } void -cogl_path_line (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2) +cogl_path_line (float x1, + float y1, + float x2, + float y2) { cogl_path_move_to (x1, y1); cogl_path_line_to (x2, y2); } void -cogl_path_polyline (CoglFixed *coords, +cogl_path_polyline (float *coords, gint num_points) { gint c = 0; @@ -203,7 +203,7 @@ cogl_path_polyline (CoglFixed *coords, } void -cogl_path_polygon (CoglFixed *coords, +cogl_path_polygon (float *coords, gint num_points) { cogl_path_polyline (coords, num_points); @@ -211,10 +211,10 @@ cogl_path_polygon (CoglFixed *coords, } void -cogl_path_rectangle (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height) +cogl_path_rectangle (float x, + float y, + float width, + float height) { cogl_path_move_to (x, y); cogl_path_line_to (x + width, y); @@ -224,20 +224,20 @@ cogl_path_rectangle (CoglFixed x, } static void -_cogl_path_arc (CoglFixed center_x, - CoglFixed center_y, - CoglFixed radius_x, - CoglFixed radius_y, - CoglAngle angle_1, - CoglAngle angle_2, - CoglAngle angle_step, +_cogl_path_arc (float center_x, + float center_y, + float radius_x, + float radius_y, + float angle_1, + float angle_2, + float angle_step, guint move_first) { - CoglAngle a = 0x0; - CoglFixed cosa = 0x0; - CoglFixed sina = 0x0; - CoglFixed px = 0x0; - CoglFixed py = 0x0; + float a = 0x0; + float cosa = 0x0; + float sina = 0x0; + float px = 0x0; + float py = 0x0; /* Fix invalid angles */ @@ -252,11 +252,11 @@ _cogl_path_arc (CoglFixed center_x, a = angle_1; while (a != angle_2) { - cosa = cogl_angle_cos (a); - sina = cogl_angle_sin (a); + cosa = cosf (a * (G_PI/180.0)); + sina = sinf (a * (G_PI/180.0)); - px = center_x + COGL_FIXED_MUL (cosa, radius_x); - py = center_y + COGL_FIXED_MUL (sina, radius_y); + px = center_x + (cosa * radius_x); + py = center_y + (sina * radius_y); if (a == angle_1 && move_first) cogl_path_move_to (px, py); @@ -279,24 +279,24 @@ _cogl_path_arc (CoglFixed center_x, /* Make sure the final point is drawn */ - cosa = cogl_angle_cos (angle_2); - sina = cogl_angle_sin (angle_2); + cosa = cosf (angle_2 * (G_PI/180.0)); + sina = sinf (angle_2 * (G_PI/180.0)); - px = center_x + COGL_FIXED_MUL (cosa, radius_x); - py = center_y + COGL_FIXED_MUL (sina, radius_y); + px = center_x + (cosa * radius_x); + py = center_y + (sina * radius_y); cogl_path_line_to (px, py); } void -cogl_path_arc (CoglFixed center_x, - CoglFixed center_y, - CoglFixed radius_x, - CoglFixed radius_y, - CoglAngle angle_1, - CoglAngle angle_2) +cogl_path_arc (float center_x, + float center_y, + float radius_x, + float radius_y, + float angle_1, + float angle_2) { - CoglAngle angle_step = 10; + float angle_step = 10; /* it is documented that a move to is needed to create a freestanding * arc */ @@ -308,13 +308,13 @@ cogl_path_arc (CoglFixed center_x, void -cogl_path_arc_rel (CoglFixed center_x, - CoglFixed center_y, - CoglFixed radius_x, - CoglFixed radius_y, - CoglAngle angle_1, - CoglAngle angle_2, - CoglAngle angle_step) +cogl_path_arc_rel (float center_x, + float center_y, + float radius_x, + float radius_y, + float angle_1, + float angle_2, + float angle_step) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -326,50 +326,50 @@ cogl_path_arc_rel (CoglFixed center_x, } void -cogl_path_ellipse (CoglFixed center_x, - CoglFixed center_y, - CoglFixed radius_x, - CoglFixed radius_y) +cogl_path_ellipse (float center_x, + float center_y, + float radius_x, + float radius_y) { - CoglAngle angle_step = 10; + float angle_step = 10; /* FIXME: if shows to be slow might be optimized * by mirroring just a quarter of it */ _cogl_path_arc (center_x, center_y, radius_x, radius_y, - 0, COGL_ANGLE_FROM_DEG (360), + 0, 360, angle_step, 1 /* move first */); cogl_path_close(); } void -cogl_path_round_rectangle (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height, - CoglFixed radius, - CoglAngle arc_step) +cogl_path_round_rectangle (float x, + float y, + float width, + float height, + float radius, + float arc_step) { - CoglFixed inner_width = width - (radius << 1); - CoglFixed inner_height = height - (radius << 1); + float inner_width = width - (radius * 2); + float inner_height = height - (radius * 2); _COGL_GET_CONTEXT (ctx, NO_RETVAL); cogl_path_move_to (x, y + radius); cogl_path_arc_rel (radius, 0, radius, radius, - COGL_ANGLE_FROM_DEG (180), - COGL_ANGLE_FROM_DEG (270), + 180, + 270, arc_step); cogl_path_line_to (ctx->path_pen.x + inner_width, ctx->path_pen.y); cogl_path_arc_rel (0, radius, radius, radius, - COGL_ANGLE_FROM_DEG (-90), - COGL_ANGLE_FROM_DEG (0), + -90, + 0, arc_step); cogl_path_line_to (ctx->path_pen.x, @@ -377,16 +377,16 @@ cogl_path_round_rectangle (CoglFixed x, cogl_path_arc_rel (-radius, 0, radius, radius, - COGL_ANGLE_FROM_DEG (0), - COGL_ANGLE_FROM_DEG (90), + 0, + 90, arc_step); cogl_path_line_to (ctx->path_pen.x - inner_width, ctx->path_pen.y); cogl_path_arc_rel (0, -radius, radius, radius, - COGL_ANGLE_FROM_DEG (90), - COGL_ANGLE_FROM_DEG (180), + 90, + 180, arc_step); cogl_path_close (); @@ -400,14 +400,14 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic) CoglBezCubic *cleft; CoglBezCubic *cright; CoglBezCubic *c; - CoglFixedVec2 dif1; - CoglFixedVec2 dif2; - CoglFixedVec2 mm; - CoglFixedVec2 c1; - CoglFixedVec2 c2; - CoglFixedVec2 c3; - CoglFixedVec2 c4; - CoglFixedVec2 c5; + floatVec2 dif1; + floatVec2 dif2; + floatVec2 mm; + floatVec2 c1; + floatVec2 c2; + floatVec2 c3; + floatVec2 c4; + floatVec2 c5; gint cindex; /* Put first curve on stack */ @@ -418,16 +418,13 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic) { c = &cubics[cindex]; -#define CFX_MUL2(x) ((x) << 1) -#define CFX_MUL3(x) (((x) << 1) + (x)) -#define CFX_SQ(x) COGL_FIXED_MUL (x, x) /* Calculate distance of control points from their * counterparts on the line between end points */ - dif1.x = CFX_MUL3 (c->p2.x) - CFX_MUL2 (c->p1.x) - c->p4.x; - dif1.y = CFX_MUL3 (c->p2.y) - CFX_MUL2 (c->p1.y) - c->p4.y; - dif2.x = CFX_MUL3 (c->p3.x) - CFX_MUL2 (c->p4.x) - c->p1.x; - dif2.y = CFX_MUL3 (c->p3.y) - CFX_MUL2 (c->p4.y) - c->p1.y; + dif1.x = (c->p2.x * 3) - (c->p1.x * 2) - c->p4.x; + dif1.y = (c->p2.y * 3) - (c->p1.y * 2) - c->p4.y; + dif2.x = (c->p3.x * 3) - (c->p4.x * 2) - c->p1.x; + dif2.y = (c->p3.y * 3) - (c->p4.y * 2) - c->p1.y; if (dif1.x < 0) dif1.x = -dif1.x; @@ -438,16 +435,13 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic) if (dif2.y < 0) dif2.y = -dif2.y; -#undef CFX_MUL2 -#undef CFX_MUL3 -#undef CFX_SQ /* Pick the greatest of two distances */ if (dif1.x < dif2.x) dif1.x = dif2.x; if (dif1.y < dif2.y) dif1.y = dif2.y; /* Cancel if the curve is flat enough */ - if (dif1.x + dif1.y <= COGL_FIXED_1 || + if (dif1.x + dif1.y <= 1.0 || cindex == _COGL_MAX_BEZ_RECURSE_DEPTH-1) { /* Add subdivision point (skip last) */ @@ -465,20 +459,20 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic) cright = c; cleft = &cubics[++cindex]; /* Subdivide into 2 sub-curves */ - c1.x = ((c->p1.x + c->p2.x) >> 1); - c1.y = ((c->p1.y + c->p2.y) >> 1); - mm.x = ((c->p2.x + c->p3.x) >> 1); - mm.y = ((c->p2.y + c->p3.y) >> 1); - c5.x = ((c->p3.x + c->p4.x) >> 1); - c5.y = ((c->p3.y + c->p4.y) >> 1); + c1.x = ((c->p1.x + c->p2.x) / 2); + c1.y = ((c->p1.y + c->p2.y) / 2); + mm.x = ((c->p2.x + c->p3.x) / 2); + mm.y = ((c->p2.y + c->p3.y) / 2); + c5.x = ((c->p3.x + c->p4.x) / 2); + c5.y = ((c->p3.y + c->p4.y) / 2); - c2.x = ((c1.x + mm.x) >> 1); - c2.y = ((c1.y + mm.y) >> 1); - c4.x = ((mm.x + c5.x) >> 1); - c4.y = ((mm.y + c5.y) >> 1); + c2.x = ((c1.x + mm.x) / 2); + c2.y = ((c1.y + mm.y) / 2); + c4.x = ((mm.x + c5.x) / 2); + c4.y = ((mm.y + c5.y) / 2); - c3.x = ((c2.x + c4.x) >> 1); - c3.y = ((c2.y + c4.y) >> 1); + c3.x = ((c2.x + c4.x) / 2); + c3.y = ((c2.y + c4.y) / 2); /* Add left recursion to stack */ cleft->p1 = c->p1; @@ -495,12 +489,12 @@ _cogl_path_bezier3_sub (CoglBezCubic *cubic) } void -cogl_path_curve_to (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed x3, - CoglFixed y3) +cogl_path_curve_to (float x1, + float y1, + float x2, + float y2, + float x3, + float y3) { CoglBezCubic cubic; @@ -524,12 +518,12 @@ cogl_path_curve_to (CoglFixed x1, } void -cogl_path_rel_curve_to (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed x3, - CoglFixed y3) +cogl_path_rel_curve_to (float x1, + float y1, + float x2, + float y2, + float x3, + float y3) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -554,11 +548,11 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad) CoglBezQuad *qleft; CoglBezQuad *qright; CoglBezQuad *q; - CoglFixedVec2 mid; - CoglFixedVec2 dif; - CoglFixedVec2 c1; - CoglFixedVec2 c2; - CoglFixedVec2 c3; + floatVec2 mid; + floatVec2 dif; + floatVec2 c1; + floatVec2 c2; + floatVec2 c3; gint qindex; /* Put first curve on stack */ @@ -573,15 +567,15 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad) /* Calculate distance of control point from its * counterpart on the line between end points */ - mid.x = ((q->p1.x + q->p3.x) >> 1); - mid.y = ((q->p1.y + q->p3.y) >> 1); + mid.x = ((q->p1.x + q->p3.x) / 2); + mid.y = ((q->p1.y + q->p3.y) / 2); dif.x = (q->p2.x - mid.x); dif.y = (q->p2.y - mid.y); if (dif.x < 0) dif.x = -dif.x; if (dif.y < 0) dif.y = -dif.y; /* Cancel if the curve is flat enough */ - if (dif.x + dif.y <= COGL_FIXED_1 || + if (dif.x + dif.y <= 1.0 || qindex == _COGL_MAX_BEZ_RECURSE_DEPTH - 1) { /* Add subdivision point (skip last) */ @@ -594,12 +588,12 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad) qright = q; qleft = &quads[++qindex]; /* Subdivide into 2 sub-curves */ - c1.x = ((q->p1.x + q->p2.x) >> 1); - c1.y = ((q->p1.y + q->p2.y) >> 1); - c3.x = ((q->p2.x + q->p3.x) >> 1); - c3.y = ((q->p2.y + q->p3.y) >> 1); - c2.x = ((c1.x + c3.x) >> 1); - c2.y = ((c1.y + c3.y) >> 1); + c1.x = ((q->p1.x + q->p2.x) / 2); + c1.y = ((q->p1.y + q->p2.y) / 2); + c3.x = ((q->p2.x + q->p3.x) / 2); + c3.y = ((q->p2.y + q->p3.y) / 2); + c2.x = ((c1.x + c3.x) / 2); + c2.y = ((c1.y + c3.y) / 2); /* Add left recursion onto stack */ qleft->p1 = q->p1; @@ -614,10 +608,10 @@ _cogl_path_bezier2_sub (CoglBezQuad *quad) } void -cogl_path_curve2_to (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2) +cogl_path_curve2_to (float x1, + float y1, + float x2, + float y2) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -639,10 +633,10 @@ cogl_path_curve2_to (CoglFixed x1, } void -cogl_rel_curve2_to (CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2) +cogl_rel_curve2_to (float x1, + float y1, + float x2, + float y2) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); diff --git a/clutter/cogl/common/cogl-primitives.h b/clutter/cogl/common/cogl-primitives.h index 01905d6..0a54ec1 100644 --- a/clutter/cogl/common/cogl-primitives.h +++ b/clutter/cogl/common/cogl-primitives.h @@ -26,15 +26,15 @@ #ifndef __COGL_PRIMITIVES_H #define __COGL_PRIMITIVES_H -typedef struct _CoglFixedVec2 CoglFixedVec2; +typedef struct _floatVec2 floatVec2; typedef struct _CoglBezQuad CoglBezQuad; typedef struct _CoglBezCubic CoglBezCubic; typedef struct _CoglPathNode CoglPathNode; -struct _CoglFixedVec2 +struct _floatVec2 { - CoglFixed x; - CoglFixed y; + float x; + float y; }; #ifdef CLUTTER_COGL_HAS_GL @@ -67,17 +67,17 @@ struct _CoglPathNode struct _CoglBezQuad { - CoglFixedVec2 p1; - CoglFixedVec2 p2; - CoglFixedVec2 p3; + floatVec2 p1; + floatVec2 p2; + floatVec2 p3; }; struct _CoglBezCubic { - CoglFixedVec2 p1; - CoglFixedVec2 p2; - CoglFixedVec2 p3; - CoglFixedVec2 p4; + floatVec2 p1; + floatVec2 p2; + floatVec2 p3; + floatVec2 p4; }; #endif /* __COGL_PRIMITIVES_H */ diff --git a/clutter/cogl/gl/cogl-context.h b/clutter/cogl/gl/cogl-context.h index d493307..ec8d85e 100644 --- a/clutter/cogl/gl/cogl-context.h +++ b/clutter/cogl/gl/cogl-context.h @@ -51,12 +51,12 @@ typedef struct gboolean enable_backface_culling; /* Primitives */ - CoglFixedVec2 path_start; - CoglFixedVec2 path_pen; + floatVec2 path_start; + floatVec2 path_pen; GArray *path_nodes; guint last_path; - CoglFixedVec2 path_nodes_min; - CoglFixedVec2 path_nodes_max; + floatVec2 path_nodes_min; + floatVec2 path_nodes_max; /* Cache of inverse projection matrix */ GLfloat inverse_projection[16]; diff --git a/clutter/cogl/gl/cogl-primitives.c b/clutter/cogl/gl/cogl-primitives.c index ca46d85..dc5c5c6 100644 --- a/clutter/cogl/gl/cogl-primitives.c +++ b/clutter/cogl/gl/cogl-primitives.c @@ -53,33 +53,33 @@ _cogl_rectangle (gint x, void -_cogl_rectanglex (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height) +_cogl_rectanglex (float x, + float y, + float width, + float height) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); cogl_enable (ctx->color_alpha < 255 ? COGL_ENABLE_BLEND : 0); - GE( glRectf (COGL_FIXED_TO_FLOAT (x), - COGL_FIXED_TO_FLOAT (y), - COGL_FIXED_TO_FLOAT (x + width), - COGL_FIXED_TO_FLOAT (y + height)) ); + GE( glRectf ( (x), + (y), + (x + width), + (y + height)) ); } void _cogl_path_add_node (gboolean new_sub_path, - CoglFixed x, - CoglFixed y) + float x, + float y) { CoglPathNode new_node; _COGL_GET_CONTEXT (ctx, NO_RETVAL); - new_node.x = COGL_FIXED_TO_FLOAT (x); - new_node.y = COGL_FIXED_TO_FLOAT (y); + new_node.x = (x); + new_node.y = (y); new_node.path_size = 0; if (new_sub_path || ctx->path_nodes->len == 0) @@ -129,24 +129,24 @@ _cogl_path_stroke_nodes () } static void -_cogl_path_get_bounds (CoglFixedVec2 nodes_min, - CoglFixedVec2 nodes_max, +_cogl_path_get_bounds (floatVec2 nodes_min, + floatVec2 nodes_max, gint *bounds_x, gint *bounds_y, guint *bounds_w, guint *bounds_h) { - *bounds_x = COGL_FIXED_FLOOR (nodes_min.x); - *bounds_y = COGL_FIXED_FLOOR (nodes_min.y); - *bounds_w = COGL_FIXED_CEIL (nodes_max.x - - COGL_FIXED_FROM_INT (*bounds_x)); - *bounds_h = COGL_FIXED_CEIL (nodes_max.y - - COGL_FIXED_FROM_INT (*bounds_y)); + *bounds_x = floorf (nodes_min.x); + *bounds_y = floorf (nodes_min.y); + *bounds_w = ceilf (nodes_max.x + - (float)(*bounds_x)); + *bounds_h = ceilf (nodes_max.y + - (float)(*bounds_y)); } void -_cogl_add_path_to_stencil_buffer (CoglFixedVec2 nodes_min, - CoglFixedVec2 nodes_max, +_cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, + floatVec2 nodes_max, guint path_size, CoglPathNode *path, gboolean merge) diff --git a/clutter/cogl/gl/cogl-texture.c b/clutter/cogl/gl/cogl-texture.c index 4c30639..5b7326c 100644 --- a/clutter/cogl/gl/cogl-texture.c +++ b/clutter/cogl/gl/cogl-texture.c @@ -54,15 +54,15 @@ struct _CoglSpanIter gint index; GArray *array; CoglTexSliceSpan *span; - CoglFixed pos; - CoglFixed next_pos; - CoglFixed origin; - CoglFixed cover_start; - CoglFixed cover_end; - CoglFixed intersect_start; - CoglFixed intersect_end; - CoglFixed intersect_start_local; - CoglFixed intersect_end_local; + float pos; + float next_pos; + float origin; + float cover_start; + float cover_end; + float intersect_start; + float intersect_end; + float intersect_start_local; + float intersect_end_local; gboolean intersects; }; @@ -102,7 +102,7 @@ _cogl_span_iter_update (CoglSpanIter *iter) /* Offset next position by span size */ iter->next_pos = iter->pos + - COGL_FIXED_FROM_INT (iter->span->size - iter->span->waste); + (float)(iter->span->size - iter->span->waste); /* Check if span intersects the area to cover */ if (iter->next_pos <= iter->cover_start || @@ -131,9 +131,9 @@ _cogl_span_iter_update (CoglSpanIter *iter) static void _cogl_span_iter_begin (CoglSpanIter *iter, GArray *array, - CoglFixed origin, - CoglFixed cover_start, - CoglFixed cover_end) + float origin, + float cover_start, + float cover_end) { /* Copy info */ iter->index = 0; @@ -471,8 +471,8 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, /* Iterate vertical spans */ for (source_y = src_y, _cogl_span_iter_begin (&y_iter, tex->slice_y_spans, - 0, COGL_FIXED_FROM_INT (dst_y), - COGL_FIXED_FROM_INT (dst_y + height)); + 0, (float)(dst_y), + (float)(dst_y + height)); !_cogl_span_iter_end (&y_iter); @@ -492,8 +492,8 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, /* Iterate horizontal spans */ for (source_x = src_x, _cogl_span_iter_begin (&x_iter, tex->slice_x_spans, - 0, COGL_FIXED_FROM_INT (dst_x), - COGL_FIXED_FROM_INT (dst_x + width)); + 0, (float)(dst_x), + (float)(dst_x + width)); !_cogl_span_iter_end (&x_iter); @@ -511,15 +511,15 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, x_iter.index); /* Pick intersection width and height */ - inter_w = COGL_FIXED_TO_INT (x_iter.intersect_end - + inter_w = (x_iter.intersect_end - x_iter.intersect_start); - inter_h = COGL_FIXED_TO_INT (y_iter.intersect_end - + inter_h = (y_iter.intersect_end - y_iter.intersect_start); /* Localize intersection top-left corner to slice*/ - local_x = COGL_FIXED_TO_INT (x_iter.intersect_start - + local_x = (x_iter.intersect_start - x_iter.pos); - local_y = COGL_FIXED_TO_INT (y_iter.intersect_start - + local_y = (y_iter.intersect_start - y_iter.pos); /* Pick slice GL handle */ @@ -555,7 +555,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint wx, wy; src = source_bmp->data - + (src_y + COGL_FIXED_TO_INT (y_iter.intersect_start) + + (src_y + (y_iter.intersect_start) - dst_y) * source_bmp->rowstride + (src_x + x_span->start + x_span->size - x_span->waste @@ -600,7 +600,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint copy_width; src = source_bmp->data - + (src_x + COGL_FIXED_TO_INT (x_iter.intersect_start) + + (src_x + (x_iter.intersect_start) - dst_x) * bpp + (src_y + y_span->start + y_span->size - y_span->waste @@ -2010,24 +2010,24 @@ _cogl_texture_add_quad_vertices (GLfloat x1, GLfloat y1, static void _cogl_texture_quad_sw (CoglTexture *tex, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2) + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2) { CoglSpanIter iter_x , iter_y; - CoglFixed tw , th; - CoglFixed tqx , tqy; - CoglFixed first_tx , first_ty; - CoglFixed first_qx , first_qy; - CoglFixed slice_tx1 , slice_ty1; - CoglFixed slice_tx2 , slice_ty2; - CoglFixed slice_qx1 , slice_qy1; - CoglFixed slice_qx2 , slice_qy2; + float tw , th; + float tqx , tqy; + float first_tx , first_ty; + float first_qx , first_qy; + float slice_tx1 , slice_ty1; + float slice_tx2 , slice_ty2; + float slice_qx1 , slice_qy1; + float slice_qx2 , slice_qy2; GLuint gl_handle; _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -2050,7 +2050,7 @@ _cogl_texture_quad_sw (CoglTexture *tex, slices */ if (tx2 < tx1) { - CoglFixed temp = x1; + float temp = x1; x1 = x2; x2 = temp; temp = tx1; @@ -2059,7 +2059,7 @@ _cogl_texture_quad_sw (CoglTexture *tex, } if (ty2 < ty1) { - CoglFixed temp = y1; + float temp = y1; y1 = y2; y2 = temp; temp = ty1; @@ -2068,27 +2068,27 @@ _cogl_texture_quad_sw (CoglTexture *tex, } /* Scale ratio from texture to quad widths */ - tw = COGL_FIXED_FROM_INT (tex->bitmap.width); - th = COGL_FIXED_FROM_INT (tex->bitmap.height); + tw = (float)(tex->bitmap.width); + th = (float)(tex->bitmap.height); - tqx = COGL_FIXED_DIV (x2 - x1, COGL_FIXED_MUL (tw, (tx2 - tx1))); - tqy = COGL_FIXED_DIV (y2 - y1, COGL_FIXED_MUL (th, (ty2 - ty1))); + tqx = (x2 - x1 / (tw * (tx2 - tx1))); + tqy = (y2 - y1 / (th * (ty2 - ty1))); /* Integral texture coordinate for first tile */ - first_tx = COGL_FIXED_FROM_INT (COGL_FIXED_FLOOR (tx1)); - first_ty = COGL_FIXED_FROM_INT (COGL_FIXED_FLOOR (ty1)); + first_tx = (float)(floorf (tx1)); + first_ty = (float)(floorf (ty1)); /* Denormalize texture coordinates */ - first_tx = COGL_FIXED_MUL (first_tx, tw); - first_ty = COGL_FIXED_MUL (first_ty, th); - tx1 = COGL_FIXED_MUL (tx1, tw); - ty1 = COGL_FIXED_MUL (ty1, th); - tx2 = COGL_FIXED_MUL (tx2, tw); - ty2 = COGL_FIXED_MUL (ty2, th); + first_tx = (first_tx * tw); + first_ty = (first_ty * th); + tx1 = (tx1 * tw); + ty1 = (ty1 * th); + tx2 = (tx2 * tw); + ty2 = (ty2 * th); /* Quad coordinate of the first tile */ - first_qx = x1 - COGL_FIXED_MUL (tx1 - first_tx, tqx); - first_qy = y1 - COGL_FIXED_MUL (ty1 - first_ty, tqy); + first_qx = x1 - (tx1 - first_tx * tqx); + first_qy = y1 - (ty1 - first_ty * tqy); /* Iterate until whole quad height covered */ @@ -2102,10 +2102,10 @@ _cogl_texture_quad_sw (CoglTexture *tex, /* Span-quad intersection in quad coordinates */ slice_qy1 = first_qy + - COGL_FIXED_MUL (iter_y.intersect_start - first_ty, tqy); + (iter_y.intersect_start - first_ty * tqy); slice_qy2 = first_qy + - COGL_FIXED_MUL (iter_y.intersect_end - first_ty, tqy); + (iter_y.intersect_end - first_ty * tqy); /* Localize slice texture coordinates */ slice_ty1 = iter_y.intersect_start - iter_y.pos; @@ -2130,10 +2130,10 @@ _cogl_texture_quad_sw (CoglTexture *tex, /* Span-quad intersection in quad coordinates */ slice_qx1 = first_qx + - COGL_FIXED_MUL (iter_x.intersect_start - first_tx, tqx); + (iter_x.intersect_start - first_tx * tqx); slice_qx2 = first_qx + - COGL_FIXED_MUL (iter_x.intersect_end - first_tx, tqx); + (iter_x.intersect_end - first_tx * tqx); /* Localize slice texture coordinates */ slice_tx1 = iter_x.intersect_start - iter_x.pos; @@ -2149,14 +2149,14 @@ _cogl_texture_quad_sw (CoglTexture *tex, #if COGL_DEBUG printf("~~~~~ slice (%d,%d)\n", iter_x.index, iter_y.index); - printf("qx1: %f\n", COGL_FIXED_TO_FLOAT (slice_qx1)); - printf("qy1: %f\n", COGL_FIXED_TO_FLOAT (slice_qy1)); - printf("qx2: %f\n", COGL_FIXED_TO_FLOAT (slice_qx2)); - printf("qy2: %f\n", COGL_FIXED_TO_FLOAT (slice_qy2)); - printf("tx1: %f\n", COGL_FIXED_TO_FLOAT (slice_tx1)); - printf("ty1: %f\n", COGL_FIXED_TO_FLOAT (slice_ty1)); - printf("tx2: %f\n", COGL_FIXED_TO_FLOAT (slice_tx2)); - printf("ty2: %f\n", COGL_FIXED_TO_FLOAT (slice_ty2)); + printf("qx1: %f\n", (slice_qx1)); + printf("qy1: %f\n", (slice_qy1)); + printf("qx2: %f\n", (slice_qx2)); + printf("qy2: %f\n", (slice_qy2)); + printf("tx1: %f\n", (slice_tx1)); + printf("ty1: %f\n", (slice_ty1)); + printf("tx2: %f\n", (slice_tx2)); + printf("ty2: %f\n", (slice_ty2)); #endif /* Pick and bind opengl texture object */ @@ -2172,28 +2172,28 @@ _cogl_texture_quad_sw (CoglTexture *tex, ctx->texture_target = tex->gl_target; ctx->texture_current = gl_handle; - _cogl_texture_add_quad_vertices (COGL_FIXED_TO_FLOAT (slice_qx1), - COGL_FIXED_TO_FLOAT (slice_qy1), - COGL_FIXED_TO_FLOAT (slice_qx2), - COGL_FIXED_TO_FLOAT (slice_qy2), - COGL_FIXED_TO_FLOAT (slice_tx1), - COGL_FIXED_TO_FLOAT (slice_ty1), - COGL_FIXED_TO_FLOAT (slice_tx2), - COGL_FIXED_TO_FLOAT (slice_ty2)); + _cogl_texture_add_quad_vertices ( (slice_qx1), + (slice_qy1), + (slice_qx2), + (slice_qy2), + (slice_tx1), + (slice_ty1), + (slice_tx2), + (slice_ty2)); } } } static void _cogl_texture_quad_hw (CoglTexture *tex, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2) + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2) { GLuint gl_handle; CoglTexSliceSpan *x_span; @@ -2209,10 +2209,10 @@ _cogl_texture_quad_hw (CoglTexture *tex, /* If the texture coords are all in the range [0,1] then we want to clamp the coords to the edge otherwise it can pull in edge pixels from the wrong side when scaled */ - if (tx1 >= 0 && tx1 <= COGL_FIXED_1 - && tx2 >= 0 && tx2 <= COGL_FIXED_1 - && ty1 >= 0 && ty1 <= COGL_FIXED_1 - && ty2 >= 0 && ty2 <= COGL_FIXED_1) + if (tx1 >= 0 && tx1 <= 1.0 + && tx2 >= 0 && tx2 <= 1.0 + && ty1 >= 0 && ty1 <= 1.0 + && ty2 >= 0 && ty2 <= 1.0) wrap_mode = GL_CLAMP_TO_EDGE; else wrap_mode = GL_REPEAT; @@ -2251,19 +2251,19 @@ _cogl_texture_quad_hw (CoglTexture *tex, ty2 *= y_span->size; } - _cogl_texture_add_quad_vertices (COGL_FIXED_TO_FLOAT (x1), - COGL_FIXED_TO_FLOAT (y1), - COGL_FIXED_TO_FLOAT (x2), - COGL_FIXED_TO_FLOAT (y2), - COGL_FIXED_TO_FLOAT (tx1), - COGL_FIXED_TO_FLOAT (ty1), - COGL_FIXED_TO_FLOAT (tx2), - COGL_FIXED_TO_FLOAT (ty2)); + _cogl_texture_add_quad_vertices ( (x1), + (y1), + (x2), + (y2), + (tx1), + (ty1), + (tx2), + (ty2)); } void cogl_texture_multiple_rectangles (CoglHandle handle, - const CoglFixed *verts, + const float *verts, guint n_rects) { CoglTexture *tex; @@ -2314,10 +2314,10 @@ cogl_texture_multiple_rectangles (CoglHandle handle, if (tex->slice_gl_handles->len == 1 && ((cogl_features_available (COGL_FEATURE_TEXTURE_NPOT) && tex->gl_target == GL_TEXTURE_2D) - || (verts[4] >= 0 && verts[4] <= COGL_FIXED_1 - && verts[6] >= 0 && verts[6] <= COGL_FIXED_1 - && verts[5] >= 0 && verts[5] <= COGL_FIXED_1 - && verts[7] >= 0 && verts[7] <= COGL_FIXED_1))) + || (verts[4] >= 0 && verts[4] <= 1.0 + && verts[6] >= 0 && verts[6] <= 1.0 + && verts[5] >= 0 && verts[5] <= 1.0 + && verts[7] >= 0 && verts[7] <= 1.0))) _cogl_texture_quad_hw (tex, verts[0],verts[1], verts[2],verts[3], verts[4],verts[5], verts[6],verts[7]); else @@ -2333,16 +2333,16 @@ cogl_texture_multiple_rectangles (CoglHandle handle, void cogl_texture_rectangle (CoglHandle handle, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2) + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2) { - CoglFixed verts[8]; + float verts[8]; verts[0] = x1; verts[1] = y1; @@ -2455,16 +2455,16 @@ cogl_texture_polygon (CoglHandle handle, OpenGL */ for (i = 0; i < n_vertices; i++, p++) { - CoglFixed tx, ty; + float tx, ty; -#define CFX_F COGL_FIXED_TO_FLOAT +#define CFX_F tx = ((vertices[i].tx - - (COGL_FIXED_FROM_INT (x_span->start) + - ((float)(x_span->start) / tex->bitmap.width)) * tex->bitmap.width / x_span->size); ty = ((vertices[i].ty - - (COGL_FIXED_FROM_INT (y_span->start) + - ((float)(y_span->start) / tex->bitmap.height)) * tex->bitmap.height / y_span->size); diff --git a/clutter/cogl/gl/cogl.c b/clutter/cogl/gl/cogl.c index 411cd8a..7b61b63 100644 --- a/clutter/cogl/gl/cogl.c +++ b/clutter/cogl/gl/cogl.c @@ -209,19 +209,19 @@ cogl_pop_matrix (void) } void -cogl_scale (CoglFixed x, CoglFixed y) +cogl_scale (float x, float y) { - glScaled (COGL_FIXED_TO_DOUBLE (x), - COGL_FIXED_TO_DOUBLE (y), + glScaled ((double)(x), + (double)(y), 1.0); } void -cogl_translatex (CoglFixed x, CoglFixed y, CoglFixed z) +cogl_translatex (float x, float y, float z) { - glTranslated (COGL_FIXED_TO_DOUBLE (x), - COGL_FIXED_TO_DOUBLE (y), - COGL_FIXED_TO_DOUBLE (z)); + glTranslated ((double)(x), + (double)(y), + (double)(z)); } void @@ -231,12 +231,12 @@ cogl_translate (gint x, gint y, gint z) } void -cogl_rotatex (CoglFixed angle, gint x, gint y, gint z) +cogl_rotatex (float angle, gint x, gint y, gint z) { - glRotated (COGL_FIXED_TO_DOUBLE (angle), - COGL_FIXED_TO_DOUBLE (x), - COGL_FIXED_TO_DOUBLE (y), - COGL_FIXED_TO_DOUBLE (z)); + glRotated ((double)(angle), + (double)(x), + (double)(y), + (double)(z)); } void @@ -466,24 +466,24 @@ set_clip_plane (GLint plane_num, } void -_cogl_set_clip_planes (CoglFixed x_offset, - CoglFixed y_offset, - CoglFixed width, - CoglFixed height) +_cogl_set_clip_planes (float x_offset, + float y_offset, + float width, + float height) { GLfloat modelview[16], projection[16]; - GLfloat vertex_tl[4] = { COGL_FIXED_TO_FLOAT (x_offset), - COGL_FIXED_TO_FLOAT (y_offset), + GLfloat vertex_tl[4] = { (x_offset), + (y_offset), 0.0f, 1.0f }; - GLfloat vertex_tr[4] = { COGL_FIXED_TO_FLOAT (x_offset + width), - COGL_FIXED_TO_FLOAT (y_offset), + GLfloat vertex_tr[4] = { (x_offset + width), + (y_offset), 0.0f, 1.0f }; - GLfloat vertex_bl[4] = { COGL_FIXED_TO_FLOAT (x_offset), - COGL_FIXED_TO_FLOAT (y_offset + height), + GLfloat vertex_bl[4] = { (x_offset), + (y_offset + height), 0.0f, 1.0f }; - GLfloat vertex_br[4] = { COGL_FIXED_TO_FLOAT (x_offset + width), - COGL_FIXED_TO_FLOAT (y_offset + height), + GLfloat vertex_br[4] = { (x_offset + width), + (y_offset + height), 0.0f, 1.0f }; GE( glGetFloatv (GL_MODELVIEW_MATRIX, modelview) ); @@ -518,10 +518,10 @@ _cogl_set_clip_planes (CoglFixed x_offset, } void -_cogl_add_stencil_clip (CoglFixed x_offset, - CoglFixed y_offset, - CoglFixed width, - CoglFixed height, +_cogl_add_stencil_clip (float x_offset, + float y_offset, + float width, + float height, gboolean first) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -537,10 +537,10 @@ _cogl_add_stencil_clip (CoglFixed x_offset, /* Punch out a hole to allow the rectangle */ GE( glStencilFunc (GL_NEVER, 0x1, 0x1) ); GE( glStencilOp (GL_REPLACE, GL_REPLACE, GL_REPLACE) ); - GE( glRectf (COGL_FIXED_TO_FLOAT (x_offset), - COGL_FIXED_TO_FLOAT (y_offset), - COGL_FIXED_TO_FLOAT (x_offset + width), - COGL_FIXED_TO_FLOAT (y_offset + height)) ); + GE( glRectf ( (x_offset), + (y_offset), + (x_offset + width), + (y_offset + height)) ); } else { @@ -548,10 +548,10 @@ _cogl_add_stencil_clip (CoglFixed x_offset, rectangle */ GE( glStencilFunc (GL_NEVER, 0x1, 0x3) ); GE( glStencilOp (GL_INCR, GL_INCR, GL_INCR) ); - GE( glRectf (COGL_FIXED_TO_FLOAT (x_offset), - COGL_FIXED_TO_FLOAT (y_offset), - COGL_FIXED_TO_FLOAT (x_offset + width), - COGL_FIXED_TO_FLOAT (y_offset + height)) ); + GE( glRectf ( (x_offset), + (y_offset), + (x_offset + width), + (y_offset + height)) ); /* Subtract one from all pixels in the stencil buffer so that only pixels where both the original stencil buffer and the @@ -574,13 +574,13 @@ _cogl_add_stencil_clip (CoglFixed x_offset, } void -_cogl_set_matrix (const CoglFixed *matrix) +_cogl_set_matrix (const float *matrix) { float float_matrix[16]; int i; for (i = 0; i < 16; i++) - float_matrix[i] = COGL_FIXED_TO_FLOAT (matrix[i]); + float_matrix[i] = (matrix[i]); GE( glLoadIdentity () ); GE( glMultMatrixf (float_matrix) ); @@ -612,20 +612,20 @@ _cogl_disable_clip_planes (void) void cogl_alpha_func (COGLenum func, - CoglFixed ref) + float ref) { - GE( glAlphaFunc (func, COGL_FIXED_TO_FLOAT(ref)) ); + GE( glAlphaFunc (func, (ref)) ); } void -cogl_perspective (CoglFixed fovy, - CoglFixed aspect, - CoglFixed zNear, - CoglFixed zFar) +cogl_perspective (float fovy, + float aspect, + float zNear, + float zFar) { - CoglFixed xmax, ymax; - CoglFixed x, y, c, d; - CoglFixed fovy_rad_half = COGL_FIXED_MUL (fovy, COGL_FIXED_PI) / 360; + float xmax, ymax; + float x, y, c, d; + float fovy_rad_half = (fovy * G_PI) / 360; GLfloat m[16]; @@ -646,22 +646,22 @@ cogl_perspective (CoglFixed fovy, * precision */ ymax = - COGL_FIXED_MUL (zNear, - COGL_FIXED_FAST_DIV (cogl_fixed_sin (fovy_rad_half), - cogl_fixed_cos (fovy_rad_half))); + (zNear * + (sinf (fovy_rad_half) / + cosf (fovy_rad_half))); - xmax = COGL_FIXED_MUL (ymax, aspect); + xmax = (ymax * aspect); - x = COGL_FIXED_FAST_DIV (zNear, xmax); - y = COGL_FIXED_FAST_DIV (zNear, ymax); - c = COGL_FIXED_FAST_DIV (-(zFar + zNear), ( zFar - zNear)); + x = (zNear / xmax); + y = (zNear / ymax); + c = (-(zFar + zNear) / ( zFar - zNear)); d = cogl_fixed_mul_div (-(2 * zFar), zNear, (zFar - zNear)); #define M(row,col) m[col*4+row] - M(0,0) = COGL_FIXED_TO_FLOAT (x); - M(1,1) = COGL_FIXED_TO_FLOAT (y); - M(2,2) = COGL_FIXED_TO_FLOAT (c); - M(2,3) = COGL_FIXED_TO_FLOAT (d); + M(0,0) = (x); + M(1,1) = (y); + M(2,2) = (c); + M(2,3) = (d); M(3,2) = -1.0F; GE( glMultMatrixf (m) ); @@ -672,22 +672,22 @@ cogl_perspective (CoglFixed fovy, memset (ctx->inverse_projection, 0, sizeof (GLfloat) * 16); #define m ctx->inverse_projection - M(0, 0) = 1.0f / COGL_FIXED_TO_FLOAT (x); - M(1, 1) = 1.0f / COGL_FIXED_TO_FLOAT (y); + M(0, 0) = 1.0f / (x); + M(1, 1) = 1.0f / (y); M(2, 3) = -1.0f; - M(3, 2) = 1.0f / COGL_FIXED_TO_FLOAT (d); - M(3, 3) = COGL_FIXED_TO_FLOAT (c) / COGL_FIXED_TO_FLOAT (d); + M(3, 2) = 1.0f / (d); + M(3, 3) = (c) / (d); #undef m #undef M } void -cogl_frustum (CoglFixed left, - CoglFixed right, - CoglFixed bottom, - CoglFixed top, - CoglFixed z_near, - CoglFixed z_far) +cogl_frustum (float left, + float right, + float bottom, + float top, + float z_near, + float z_far) { GLfloat c, d; @@ -696,32 +696,32 @@ cogl_frustum (CoglFixed left, GE( glMatrixMode (GL_PROJECTION) ); GE( glLoadIdentity () ); - GE( glFrustum (COGL_FIXED_TO_DOUBLE (left), - COGL_FIXED_TO_DOUBLE (right), - COGL_FIXED_TO_DOUBLE (bottom), - COGL_FIXED_TO_DOUBLE (top), - COGL_FIXED_TO_DOUBLE (z_near), - COGL_FIXED_TO_DOUBLE (z_far)) ); + GE( glFrustum ((double)(left), + (double)(right), + (double)(bottom), + (double)(top), + (double)(z_near), + (double)(z_far)) ); GE( glMatrixMode (GL_MODELVIEW) ); /* Calculate and store the inverse of the matrix */ memset (ctx->inverse_projection, 0, sizeof (GLfloat) * 16); - c = -COGL_FIXED_TO_FLOAT (z_far + z_near) - / COGL_FIXED_TO_FLOAT (z_far - z_near); - d = -COGL_FIXED_TO_FLOAT (2 * COGL_FIXED_MUL (z_far, z_near)) - / COGL_FIXED_TO_FLOAT (z_far - z_near); + c = - (z_far + z_near) + / (z_far - z_near); + d = - (2 * (z_far * z_near)) + / (z_far - z_near); #define M(row,col) ctx->inverse_projection[col*4+row] - M(0,0) = COGL_FIXED_TO_FLOAT (right - left) - / COGL_FIXED_TO_FLOAT (2 * z_near); - M(0,3) = COGL_FIXED_TO_FLOAT (right + left) - / COGL_FIXED_TO_FLOAT (2 * z_near); - M(1,1) = COGL_FIXED_TO_FLOAT (top - bottom) - / COGL_FIXED_TO_FLOAT (2 * z_near); - M(1,3) = COGL_FIXED_TO_FLOAT (top + bottom) - / COGL_FIXED_TO_FLOAT (2 * z_near); + M(0,0) = (right - left) + / (2 * z_near); + M(0,3) = (right + left) + / (2 * z_near); + M(1,1) = (top - bottom) + / (2 * z_near); + M(1,3) = (top + bottom) + / (2 * z_near); M(2,3) = -1.0f; M(3,2) = 1.0f / d; M(3,3) = c / d; @@ -738,10 +738,10 @@ cogl_viewport (guint width, void cogl_setup_viewport (guint width, guint height, - CoglFixed fovy, - CoglFixed aspect, - CoglFixed z_near, - CoglFixed z_far) + float fovy, + float aspect, + float z_near, + float z_far) { GLfloat z_camera; @@ -769,13 +769,13 @@ cogl_setup_viewport (guint width, z_camera = DEFAULT_Z_CAMERA; - if (fovy != COGL_FIXED_60) + if (fovy != 60.0) { - CoglFixed fovy_rad = COGL_FIXED_MUL (fovy, COGL_FIXED_PI) / 180; + float fovy_rad = (fovy * G_PI) / 180; z_camera = - COGL_FIXED_TO_FLOAT (COGL_FIXED_DIV (cogl_fixed_sin (fovy_rad), - cogl_fixed_cos (fovy_rad)) >> 1); + ((sinf (fovy_rad) / + cosf (fovy_rad)) >> 1); } GE( glTranslatef (-0.5f, -0.5f, -z_camera) ); @@ -1164,75 +1164,75 @@ cogl_features_available (CoglFeatureFlags features) } void -cogl_get_modelview_matrix (CoglFixed m[16]) +cogl_get_modelview_matrix (float m[16]) { GLdouble md[16]; glGetDoublev(GL_MODELVIEW_MATRIX, &md[0]); #define M(m,row,col) m[col*4+row] - M(m,0,0) = COGL_FIXED_FROM_FLOAT (M(md,0,0)); - M(m,0,1) = COGL_FIXED_FROM_FLOAT (M(md,0,1)); - M(m,0,2) = COGL_FIXED_FROM_FLOAT (M(md,0,2)); - M(m,0,3) = COGL_FIXED_FROM_FLOAT (M(md,0,3)); - - M(m,1,0) = COGL_FIXED_FROM_FLOAT (M(md,1,0)); - M(m,1,1) = COGL_FIXED_FROM_FLOAT (M(md,1,1)); - M(m,1,2) = COGL_FIXED_FROM_FLOAT (M(md,1,2)); - M(m,1,3) = COGL_FIXED_FROM_FLOAT (M(md,1,3)); - - M(m,2,0) = COGL_FIXED_FROM_FLOAT (M(md,2,0)); - M(m,2,1) = COGL_FIXED_FROM_FLOAT (M(md,2,1)); - M(m,2,2) = COGL_FIXED_FROM_FLOAT (M(md,2,2)); - M(m,2,3) = COGL_FIXED_FROM_FLOAT (M(md,2,3)); - - M(m,3,0) = COGL_FIXED_FROM_FLOAT (M(md,3,0)); - M(m,3,1) = COGL_FIXED_FROM_FLOAT (M(md,3,1)); - M(m,3,2) = COGL_FIXED_FROM_FLOAT (M(md,3,2)); - M(m,3,3) = COGL_FIXED_FROM_FLOAT (M(md,3,3)); + M(m,0,0) = (M(md,0,0)); + M(m,0,1) = (M(md,0,1)); + M(m,0,2) = (M(md,0,2)); + M(m,0,3) = (M(md,0,3)); + + M(m,1,0) = (M(md,1,0)); + M(m,1,1) = (M(md,1,1)); + M(m,1,2) = (M(md,1,2)); + M(m,1,3) = (M(md,1,3)); + + M(m,2,0) = (M(md,2,0)); + M(m,2,1) = (M(md,2,1)); + M(m,2,2) = (M(md,2,2)); + M(m,2,3) = (M(md,2,3)); + + M(m,3,0) = (M(md,3,0)); + M(m,3,1) = (M(md,3,1)); + M(m,3,2) = (M(md,3,2)); + M(m,3,3) = (M(md,3,3)); #undef M } void -cogl_get_projection_matrix (CoglFixed m[16]) +cogl_get_projection_matrix (float m[16]) { GLdouble md[16]; glGetDoublev(GL_PROJECTION_MATRIX, &md[0]); #define M(m,row,col) m[col*4+row] - M(m,0,0) = COGL_FIXED_FROM_FLOAT (M(md,0,0)); - M(m,0,1) = COGL_FIXED_FROM_FLOAT (M(md,0,1)); - M(m,0,2) = COGL_FIXED_FROM_FLOAT (M(md,0,2)); - M(m,0,3) = COGL_FIXED_FROM_FLOAT (M(md,0,3)); - - M(m,1,0) = COGL_FIXED_FROM_FLOAT (M(md,1,0)); - M(m,1,1) = COGL_FIXED_FROM_FLOAT (M(md,1,1)); - M(m,1,2) = COGL_FIXED_FROM_FLOAT (M(md,1,2)); - M(m,1,3) = COGL_FIXED_FROM_FLOAT (M(md,1,3)); - - M(m,2,0) = COGL_FIXED_FROM_FLOAT (M(md,2,0)); - M(m,2,1) = COGL_FIXED_FROM_FLOAT (M(md,2,1)); - M(m,2,2) = COGL_FIXED_FROM_FLOAT (M(md,2,2)); - M(m,2,3) = COGL_FIXED_FROM_FLOAT (M(md,2,3)); - - M(m,3,0) = COGL_FIXED_FROM_FLOAT (M(md,3,0)); - M(m,3,1) = COGL_FIXED_FROM_FLOAT (M(md,3,1)); - M(m,3,2) = COGL_FIXED_FROM_FLOAT (M(md,3,2)); - M(m,3,3) = COGL_FIXED_FROM_FLOAT (M(md,3,3)); + M(m,0,0) = (M(md,0,0)); + M(m,0,1) = (M(md,0,1)); + M(m,0,2) = (M(md,0,2)); + M(m,0,3) = (M(md,0,3)); + + M(m,1,0) = (M(md,1,0)); + M(m,1,1) = (M(md,1,1)); + M(m,1,2) = (M(md,1,2)); + M(m,1,3) = (M(md,1,3)); + + M(m,2,0) = (M(md,2,0)); + M(m,2,1) = (M(md,2,1)); + M(m,2,2) = (M(md,2,2)); + M(m,2,3) = (M(md,2,3)); + + M(m,3,0) = (M(md,3,0)); + M(m,3,1) = (M(md,3,1)); + M(m,3,2) = (M(md,3,2)); + M(m,3,3) = (M(md,3,3)); #undef M } void -cogl_get_viewport (CoglFixed v[4]) +cogl_get_viewport (float v[4]) { GLdouble vd[4]; glGetDoublev(GL_VIEWPORT, &vd[0]); - v[0] = COGL_FIXED_FROM_FLOAT (vd[0]); - v[1] = COGL_FIXED_FROM_FLOAT (vd[1]); - v[2] = COGL_FIXED_FROM_FLOAT (vd[2]); - v[3] = COGL_FIXED_FROM_FLOAT (vd[3]); + v[0] = (vd[0]); + v[1] = (vd[1]); + v[2] = (vd[2]); + v[3] = (vd[3]); } void @@ -1263,9 +1263,9 @@ cogl_get_bitmasks (gint *red, gint *green, gint *blue, gint *alpha) void cogl_fog_set (const CoglColor *fog_color, - CoglFixed density, - CoglFixed start, - CoglFixed stop) + float density, + float start, + float stop) { GLfloat fogColor[4]; @@ -1281,8 +1281,8 @@ cogl_fog_set (const CoglColor *fog_color, glFogi (GL_FOG_MODE, GL_LINEAR); glHint (GL_FOG_HINT, GL_NICEST); - glFogf (GL_FOG_DENSITY, COGL_FIXED_TO_FLOAT (density)); - glFogf (GL_FOG_START, COGL_FIXED_TO_FLOAT (start)); - glFogf (GL_FOG_END, COGL_FIXED_TO_FLOAT (stop)); + glFogf (GL_FOG_DENSITY, (density)); + glFogf (GL_FOG_START, (start)); + glFogf (GL_FOG_END, (stop)); } diff --git a/clutter/cogl/gles/cogl-context.c b/clutter/cogl/gles/cogl-context.c index b09568d..e5c017e 100644 --- a/clutter/cogl/gles/cogl-context.c +++ b/clutter/cogl/gles/cogl-context.c @@ -80,7 +80,7 @@ cogl_create_context () #endif /* Init OpenGL state */ - GE( cogl_wrap_glTexEnvx (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ); + GE( cogl_wrap_glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) ); GE( glColorMask (TRUE, TRUE, TRUE, FALSE) ); GE( glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) ); cogl_enable (0); diff --git a/clutter/cogl/gles/cogl-context.h b/clutter/cogl/gles/cogl-context.h index 92b8b96..d941aaa 100644 --- a/clutter/cogl/gles/cogl-context.h +++ b/clutter/cogl/gles/cogl-context.h @@ -53,15 +53,15 @@ typedef struct gboolean enable_backface_culling; /* Primitives */ - CoglFixedVec2 path_start; - CoglFixedVec2 path_pen; + floatVec2 path_start; + floatVec2 path_pen; GArray *path_nodes; guint last_path; - CoglFixedVec2 path_nodes_min; - CoglFixedVec2 path_nodes_max; + floatVec2 path_nodes_min; + floatVec2 path_nodes_max; /* Cache of inverse projection matrix */ - CoglFixed inverse_projection[16]; + float inverse_projection[16]; /* Textures */ GArray *texture_handles; diff --git a/clutter/cogl/gles/cogl-fbo.c b/clutter/cogl/gles/cogl-fbo.c index d5b0281..3b1099e 100644 --- a/clutter/cogl/gles/cogl-fbo.c +++ b/clutter/cogl/gles/cogl-fbo.c @@ -227,12 +227,12 @@ cogl_draw_buffer (CoglBufferTarget target, CoglHandle offscreen) /* Setup new viewport and matrices */ GE( glViewport (0, 0, fbo->width, fbo->height) ); - GE( cogl_wrap_glTranslatex (-COGL_FIXED_1, -COGL_FIXED_1, 0) ); - GE( cogl_wrap_glScalex (COGL_FIXED_DIV (COGL_FIXED_FROM_INT (2), - COGL_FIXED_FROM_INT (fbo->width)), - COGL_FIXED_DIV (COGL_FIXED_FROM_INT (2), - COGL_FIXED_FROM_INT (fbo->height)), - COGL_FIXED_1) ); + GE( cogl_wrap_glTranslatef (-1.0, -1.0, 0) ); + GE( cogl_wrap_glScalef (((float)(2) / + (float)(fbo->width)), + ((float)(2) / + (float)(fbo->height)), + 1.0) ); /* Bind offscreen framebuffer object */ GE( glBindFramebuffer (GL_FRAMEBUFFER, fbo->gl_handle) ); diff --git a/clutter/cogl/gles/cogl-gles2-wrapper.c b/clutter/cogl/gles/cogl-gles2-wrapper.c index d43ad21..4be0a55 100644 --- a/clutter/cogl/gles/cogl-gles2-wrapper.c +++ b/clutter/cogl/gles/cogl-gles2-wrapper.c @@ -104,7 +104,7 @@ cogl_gles2_wrapper_create_shader (GLenum type, const char *source) void cogl_gles2_wrapper_init (CoglGles2Wrapper *wrapper) { - GLfixed default_fog_color[4] = { 0, 0, 0, 0 }; + GLfloat default_fog_color[4] = { 0, 0, 0, 0 }; memset (wrapper, 0, sizeof (CoglGles2Wrapper)); @@ -118,11 +118,11 @@ cogl_gles2_wrapper_init (CoglGles2Wrapper *wrapper) /* Initialize the fogging options */ cogl_wrap_glDisable (GL_FOG); - cogl_wrap_glFogx (GL_FOG_MODE, GL_LINEAR); - cogl_wrap_glFogx (GL_FOG_DENSITY, COGL_FIXED_1); - cogl_wrap_glFogx (GL_FOG_START, 0); - cogl_wrap_glFogx (GL_FOG_END, 1); - cogl_wrap_glFogxv (GL_FOG_COLOR, default_fog_color); + cogl_wrap_glFogf (GL_FOG_MODE, GL_LINEAR); + cogl_wrap_glFogf (GL_FOG_DENSITY, 1.0); + cogl_wrap_glFogf (GL_FOG_START, 0); + cogl_wrap_glFogf (GL_FOG_END, 1); + cogl_wrap_glFogfv (GL_FOG_COLOR, default_fog_color); /* Initialize alpha testing */ cogl_wrap_glDisable (GL_ALPHA_TEST); @@ -517,10 +517,10 @@ cogl_gles2_wrapper_update_matrix (CoglGles2Wrapper *wrapper, GLenum matrix_num) void cogl_wrap_glClearColorx (GLclampx r, GLclampx g, GLclampx b, GLclampx a) { - glClearColor (COGL_FIXED_TO_FLOAT (r), - COGL_FIXED_TO_FLOAT (g), - COGL_FIXED_TO_FLOAT (b), - COGL_FIXED_TO_FLOAT (a)); + glClearColor ( (r), + (g), + (b), + (a)); } void @@ -666,58 +666,58 @@ cogl_wrap_glMultMatrix (const float *m) } void -cogl_wrap_glMultMatrixx (const GLfixed *m) +cogl_wrap_glMultMatrixf (const GLfloat *m) { float new_matrix[16]; int i; for (i = 0; i < 16; i++) - new_matrix[i] = COGL_FIXED_TO_FLOAT (m[i]); + new_matrix[i] = (m[i]); cogl_wrap_glMultMatrix (new_matrix); } void -cogl_wrap_glFrustumx (GLfixed left, GLfixed right, - GLfixed bottom, GLfixed top, - GLfixed z_near, GLfixed z_far) +cogl_wrap_glFrustumf (GLfloat left, GLfloat right, + GLfloat bottom, GLfloat top, + GLfloat z_near, GLfloat z_far) { float matrix[16]; - float two_near = COGL_FIXED_TO_FLOAT (2 * z_near); + float two_near = (2 * z_near); memset (matrix, 0, sizeof (matrix)); - matrix[0] = two_near / COGL_FIXED_TO_FLOAT (right - left); - matrix[5] = two_near / COGL_FIXED_TO_FLOAT (top - bottom); - matrix[8] = COGL_FIXED_TO_FLOAT (right + left) - / COGL_FIXED_TO_FLOAT (right - left); - matrix[9] = COGL_FIXED_TO_FLOAT (top + bottom) - / COGL_FIXED_TO_FLOAT (top - bottom); - matrix[10] = -COGL_FIXED_TO_FLOAT (z_far + z_near) - / COGL_FIXED_TO_FLOAT (z_far - z_near); + matrix[0] = two_near / (right - left); + matrix[5] = two_near / (top - bottom); + matrix[8] = (right + left) + / (right - left); + matrix[9] = (top + bottom) + / (top - bottom); + matrix[10] = - (z_far + z_near) + / (z_far - z_near); matrix[11] = -1.0f; - matrix[14] = -two_near * COGL_FIXED_TO_FLOAT (z_far) - / COGL_FIXED_TO_FLOAT (z_far - z_near); + matrix[14] = -two_near * (z_far) + / (z_far - z_near); cogl_wrap_glMultMatrix (matrix); } void -cogl_wrap_glScalex (GLfixed x, GLfixed y, GLfixed z) +cogl_wrap_glScalef (GLfloat x, GLfloat y, GLfloat z) { float matrix[16]; memset (matrix, 0, sizeof (matrix)); - matrix[0] = COGL_FIXED_TO_FLOAT (x); - matrix[5] = COGL_FIXED_TO_FLOAT (y); - matrix[10] = COGL_FIXED_TO_FLOAT (z); + matrix[0] = (x); + matrix[5] = (y); + matrix[10] = (z); matrix[15] = 1.0f; cogl_wrap_glMultMatrix (matrix); } void -cogl_wrap_glTranslatex (GLfixed x, GLfixed y, GLfixed z) +cogl_wrap_glTranslatef (GLfloat x, GLfloat y, GLfloat z) { float matrix[16]; @@ -725,22 +725,22 @@ cogl_wrap_glTranslatex (GLfixed x, GLfixed y, GLfixed z) matrix[0] = 1.0f; matrix[5] = 1.0f; matrix[10] = 1.0f; - matrix[12] = COGL_FIXED_TO_FLOAT (x); - matrix[13] = COGL_FIXED_TO_FLOAT (y); - matrix[14] = COGL_FIXED_TO_FLOAT (z); + matrix[12] = (x); + matrix[13] = (y); + matrix[14] = (z); matrix[15] = 1.0f; cogl_wrap_glMultMatrix (matrix); } void -cogl_wrap_glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z) +cogl_wrap_glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { float matrix[16]; - float xf = COGL_FIXED_TO_FLOAT (x); - float yf = COGL_FIXED_TO_FLOAT (y); - float zf = COGL_FIXED_TO_FLOAT (z); - float anglef = COGL_FIXED_TO_FLOAT (angle) * G_PI / 180.0f; + float xf = (x); + float yf = (y); + float zf = (z); + float anglef = (angle) * G_PI / 180.0f; float c = cosf (anglef); float s = sinf (anglef); @@ -768,21 +768,21 @@ cogl_wrap_glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z) } void -cogl_wrap_glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, - GLfixed near, GLfixed far) +cogl_wrap_glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, + GLfloat near, GLfloat far) { float matrix[16]; - float xrange = COGL_FIXED_TO_FLOAT (right - left); - float yrange = COGL_FIXED_TO_FLOAT (top - bottom); - float zrange = COGL_FIXED_TO_FLOAT (far - near); + float xrange = (right - left); + float yrange = (top - bottom); + float zrange = (far - near); memset (matrix, 0, sizeof (matrix)); matrix[0] = 2.0f / xrange; matrix[5] = 2.0f / yrange; matrix[10] = 2.0f / zrange; - matrix[12] = COGL_FIXED_TO_FLOAT (right + left) / xrange; - matrix[13] = COGL_FIXED_TO_FLOAT (top + bottom) / yrange; - matrix[14] = COGL_FIXED_TO_FLOAT (far + near) / zrange; + matrix[12] = (right + left) / xrange; + matrix[13] = (top + bottom) / yrange; + matrix[14] = (far + near) / zrange; matrix[15] = 1.0f; cogl_wrap_glMultMatrix (matrix); @@ -1033,7 +1033,7 @@ cogl_gles2_wrapper_bind_texture (GLenum target, GLuint texture, } void -cogl_wrap_glTexEnvx (GLenum target, GLenum pname, GLfixed param) +cogl_wrap_glTexEnvf (GLenum target, GLenum pname, GLfloat param) { /* This function is only used to set the texture mode once to GL_MODULATE. The shader is hard-coded to modulate the texture so @@ -1143,17 +1143,17 @@ cogl_wrap_glAlphaFunc (GLenum func, GLclampf ref) } void -cogl_wrap_glColor4x (GLclampx r, GLclampx g, GLclampx b, GLclampx a) +cogl_wrap_glColor4f (GLclampx r, GLclampx g, GLclampx b, GLclampx a) { glVertexAttrib4f (COGL_GLES2_WRAPPER_COLOR_ATTRIB, - COGL_FIXED_TO_FLOAT (r), - COGL_FIXED_TO_FLOAT (g), - COGL_FIXED_TO_FLOAT (b), - COGL_FIXED_TO_FLOAT (a)); + (r), + (g), + (b), + (a)); } void -cogl_wrap_glClipPlanex (GLenum plane, GLfixed *equation) +cogl_wrap_glClipPlanef (GLenum plane, GLfloat *equation) { /* FIXME */ } @@ -1161,10 +1161,10 @@ cogl_wrap_glClipPlanex (GLenum plane, GLfixed *equation) static void cogl_gles2_float_array_to_fixed (int size, const GLfloat *floats, - GLfixed *fixeds) + GLfloat *fixeds) { while (size-- > 0) - *(fixeds++) = COGL_FIXED_FROM_FLOAT (*(floats++)); + *(fixeds++) = (*(floats++)); } void @@ -1185,7 +1185,7 @@ cogl_wrap_glGetIntegerv (GLenum pname, GLint *params) } void -cogl_wrap_glGetFixedv (GLenum pname, GLfixed *params) +cogl_wrap_glGetFixedv (GLenum pname, GLfloat *params) { _COGL_GET_GLES2_WRAPPER (w, NO_RETVAL); @@ -1215,7 +1215,7 @@ cogl_wrap_glGetFixedv (GLenum pname, GLfixed *params) } void -cogl_wrap_glFogx (GLenum pname, GLfixed param) +cogl_wrap_glFogf (GLenum pname, GLfloat param) { _COGL_GET_GLES2_WRAPPER (w, NO_RETVAL); @@ -1227,23 +1227,23 @@ cogl_wrap_glFogx (GLenum pname, GLfixed param) case GL_FOG_DENSITY: _COGL_GLES2_CHANGE_UNIFORM (w, FOG_DENSITY, fog_density, - COGL_FIXED_TO_FLOAT (param)); + (param)); break; case GL_FOG_START: _COGL_GLES2_CHANGE_UNIFORM (w, FOG_START, fog_start, - COGL_FIXED_TO_FLOAT (param)); + (param)); break; case GL_FOG_END: _COGL_GLES2_CHANGE_UNIFORM (w, FOG_END, fog_end, - COGL_FIXED_TO_FLOAT (param)); + (param)); break; } } void -cogl_wrap_glFogxv (GLenum pname, const GLfixed *params) +cogl_wrap_glFogfv (GLenum pname, const GLfloat *params) { int i; _COGL_GET_GLES2_WRAPPER (w, NO_RETVAL); @@ -1251,7 +1251,7 @@ cogl_wrap_glFogxv (GLenum pname, const GLfixed *params) if (pname == GL_FOG_COLOR) { for (i = 0; i < 4; i++) - w->fog_color[i] = COGL_FIXED_TO_FLOAT (params[i]); + w->fog_color[i] = (params[i]); w->dirty_uniforms |= COGL_GLES2_DIRTY_FOG_COLOR; } diff --git a/clutter/cogl/gles/cogl-gles2-wrapper.h b/clutter/cogl/gles/cogl-gles2-wrapper.h index 7e7472c..cb700cc 100644 --- a/clutter/cogl/gles/cogl-gles2-wrapper.h +++ b/clutter/cogl/gles/cogl-gles2-wrapper.h @@ -209,16 +209,16 @@ void cogl_wrap_glPushMatrix (); void cogl_wrap_glPopMatrix (); void cogl_wrap_glMatrixMode (GLenum mode); void cogl_wrap_glLoadIdentity (); -void cogl_wrap_glMultMatrixx (const GLfixed *m); -void cogl_wrap_glFrustumx (GLfixed left, GLfixed right, - GLfixed bottom, GLfixed top, - GLfixed z_near, GLfixed z_far); -void cogl_wrap_glScalex (GLfixed x, GLfixed y, GLfixed z); -void cogl_wrap_glTranslatex (GLfixed x, GLfixed y, GLfixed z); -void cogl_wrap_glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -void cogl_wrap_glOrthox (GLfixed left, GLfixed right, - GLfixed bottom, GLfixed top, - GLfixed near, GLfixed far); +void cogl_wrap_glMultMatrixf (const GLfloat *m); +void cogl_wrap_glFrustumf (GLfloat left, GLfloat right, + GLfloat bottom, GLfloat top, + GLfloat z_near, GLfloat z_far); +void cogl_wrap_glScalef (GLfloat x, GLfloat y, GLfloat z); +void cogl_wrap_glTranslatef (GLfloat x, GLfloat y, GLfloat z); +void cogl_wrap_glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +void cogl_wrap_glOrthof (GLfloat left, GLfloat right, + GLfloat bottom, GLfloat top, + GLfloat near, GLfloat far); void cogl_wrap_glEnable (GLenum cap); void cogl_wrap_glDisable (GLenum cap); @@ -232,22 +232,22 @@ void cogl_wrap_glColorPointer (GLint size, GLenum type, GLsizei stride, void cogl_wrap_glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -void cogl_wrap_glTexEnvx (GLenum target, GLenum pname, GLfixed param); +void cogl_wrap_glTexEnvf (GLenum target, GLenum pname, GLfloat param); void cogl_wrap_glEnableClientState (GLenum array); void cogl_wrap_glDisableClientState (GLenum array); void cogl_wrap_glAlphaFunc (GLenum func, GLclampf ref); -void cogl_wrap_glColor4x (GLclampx r, GLclampx g, GLclampx b, GLclampx a); +void cogl_wrap_glColor4f (GLclampx r, GLclampx g, GLclampx b, GLclampx a); -void cogl_wrap_glClipPlanex (GLenum plane, GLfixed *equation); +void cogl_wrap_glClipPlanef (GLenum plane, GLfloat *equation); void cogl_wrap_glGetIntegerv (GLenum pname, GLint *params); -void cogl_wrap_glGetFixedv (GLenum pname, GLfixed *params); +void cogl_wrap_glGetFixedv (GLenum pname, GLfloat *params); -void cogl_wrap_glFogx (GLenum pname, GLfixed param); -void cogl_wrap_glFogxv (GLenum pname, const GLfixed *params); +void cogl_wrap_glFogf (GLenum pname, GLfloat param); +void cogl_wrap_glFogfv (GLenum pname, const GLfloat *params); void cogl_wrap_glDrawArrays (GLenum mode, GLint first, GLsizei count); void cogl_wrap_glDrawElements (GLenum mode, GLsizei count, GLenum type, @@ -280,28 +280,28 @@ void _cogl_gles2_clear_cache_for_program (CoglHandle program); #define cogl_wrap_glPopMatrix glPopMatrix #define cogl_wrap_glMatrixMode glMatrixMode #define cogl_wrap_glLoadIdentity glLoadIdentity -#define cogl_wrap_glMultMatrixx glMultMatrixx -#define cogl_wrap_glFrustumx glFrustumx -#define cogl_wrap_glScalex glScalex -#define cogl_wrap_glTranslatex glTranslatex -#define cogl_wrap_glRotatex glRotatex -#define cogl_wrap_glOrthox glOrthox +#define cogl_wrap_glMultMatrixf glMultMatrixx +#define cogl_wrap_glFrustumf glFrustumx +#define cogl_wrap_glScalef glScalex +#define cogl_wrap_glTranslatef glTranslatex +#define cogl_wrap_glRotatef glRotatex +#define cogl_wrap_glOrthof glOrthox #define cogl_wrap_glEnable glEnable #define cogl_wrap_glDisable glDisable #define cogl_wrap_glTexCoordPointer glTexCoordPointer #define cogl_wrap_glVertexPointer glVertexPointer #define cogl_wrap_glColorPointer glColorPointer #define cogl_wrap_glNormalPointer glNormalPointer -#define cogl_wrap_glTexEnvx glTexEnvx +#define cogl_wrap_glTexEnvf glTexEnvx #define cogl_wrap_glEnableClientState glEnableClientState #define cogl_wrap_glDisableClientState glDisableClientState #define cogl_wrap_glAlphaFunc glAlphaFunc -#define cogl_wrap_glColor4x glColor4x -#define cogl_wrap_glClipPlanex glClipPlanex +#define cogl_wrap_glColor4f glColor4x +#define cogl_wrap_glClipPlanef glClipPlanex #define cogl_wrap_glGetIntegerv glGetIntegerv #define cogl_wrap_glGetFixedv glGetFixedv -#define cogl_wrap_glFogx glFogx -#define cogl_wrap_glFogxv glFogxv +#define cogl_wrap_glFogf glFogx +#define cogl_wrap_glFogfv glFogxv #define cogl_wrap_glTexParameteri glTexParameteri /* The extra third parameter of the bind texture wrapper isn't needed diff --git a/clutter/cogl/gles/cogl-primitives.c b/clutter/cogl/gles/cogl-primitives.c index f6248ea..901fa5d 100644 --- a/clutter/cogl/gles/cogl-primitives.c +++ b/clutter/cogl/gles/cogl-primitives.c @@ -64,12 +64,12 @@ _cogl_rectangle (gint x, void -_cogl_rectanglex (CoglFixed x, - CoglFixed y, - CoglFixed width, - CoglFixed height) +_cogl_rectanglex (float x, + float y, + float width, + float height) { - GLfixed rect_verts[8] = { + GLfloat rect_verts[8] = { x, y, x + width, y, x, y + height, @@ -89,8 +89,8 @@ _cogl_rectanglex (CoglFixed x, void _cogl_path_add_node (gboolean new_sub_path, - CoglFixed x, - CoglFixed y) + float x, + float y) { CoglPathNode new_node; @@ -147,19 +147,19 @@ _cogl_path_stroke_nodes () } static void -_cogl_path_get_bounds (CoglFixedVec2 nodes_min, - CoglFixedVec2 nodes_max, +_cogl_path_get_bounds (floatVec2 nodes_min, + floatVec2 nodes_max, gint *bounds_x, gint *bounds_y, guint *bounds_w, guint *bounds_h) { - *bounds_x = COGL_FIXED_FLOOR (nodes_min.x); - *bounds_y = COGL_FIXED_FLOOR (nodes_min.y); - *bounds_w = COGL_FIXED_CEIL (nodes_max.x - - COGL_FIXED_FROM_INT (*bounds_x)); - *bounds_h = COGL_FIXED_CEIL (nodes_max.y - - COGL_FIXED_FROM_INT (*bounds_y)); + *bounds_x = floorf (nodes_min.x); + *bounds_y = floorf (nodes_min.y); + *bounds_w = ceilf (nodes_max.x + - (float)(*bounds_x)); + *bounds_h = ceilf (nodes_max.y + - (float)(*bounds_y)); } static gint compare_ints (gconstpointer a, @@ -169,8 +169,8 @@ static gint compare_ints (gconstpointer a, } void -_cogl_add_path_to_stencil_buffer (CoglFixedVec2 nodes_min, - CoglFixedVec2 nodes_max, +_cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, + floatVec2 nodes_max, guint path_size, CoglPathNode *path, gboolean merge) @@ -244,12 +244,12 @@ _cogl_add_path_to_stencil_buffer (CoglFixedVec2 nodes_min, GE( cogl_wrap_glMatrixMode (GL_PROJECTION) ); GE( cogl_wrap_glPushMatrix () ); GE( cogl_wrap_glLoadIdentity () ); - cogl_rectanglex (-COGL_FIXED_1, -COGL_FIXED_1, - COGL_FIXED_FROM_INT (2), - COGL_FIXED_FROM_INT (2)); - cogl_rectanglex (-COGL_FIXED_1, -COGL_FIXED_1, - COGL_FIXED_FROM_INT (2), - COGL_FIXED_FROM_INT (2)); + cogl_rectanglex (-1.0, -1.0, + (float)(2), + (float)(2)); + cogl_rectanglex (-1.0, -1.0, + (float)(2), + (float)(2)); GE( cogl_wrap_glPopMatrix () ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); GE( cogl_wrap_glPopMatrix () ); @@ -292,14 +292,14 @@ _cogl_path_fill_nodes_scanlines (CoglPathNode *path, for (i=0; i < bounds_h; i++) scanlines[i]=NULL; - first_x = prev_x = COGL_FIXED_TO_INT (path->x); - first_y = prev_y = COGL_FIXED_TO_INT (path->y); + first_x = prev_x = (path->x); + first_y = prev_y = (path->y); /* create scanline intersection list */ for (i=1; i < path_size; i++) { - gint dest_x = COGL_FIXED_TO_INT (path[i].x); - gint dest_y = COGL_FIXED_TO_INT (path[i].y); + gint dest_x = (path[i].x); + gint dest_y = (path[i].y); gint ydir; gint dx; gint dy; @@ -362,7 +362,7 @@ _cogl_path_fill_nodes_scanlines (CoglPathNode *path, { gint spans = 0; gint span_no; - GLfixed *coords; + GLfloat *coords; /* count number of spans */ for (i=0; i < bounds_h; i++) @@ -380,7 +380,7 @@ _cogl_path_fill_nodes_scanlines (CoglPathNode *path, iter = next->next; } } - coords = g_malloc0 (spans * sizeof (GLfixed) * 3 * 2 * 2); + coords = g_malloc0 (spans * sizeof (GLfloat) * 3 * 2 * 2); span_no = 0; /* build list of triangles */ @@ -390,15 +390,15 @@ _cogl_path_fill_nodes_scanlines (CoglPathNode *path, while (iter) { GSList *next = iter->next; - GLfixed x0, x1; - GLfixed y0, y1; + GLfloat x0, x1; + GLfloat y0, y1; if (!next) break; - x0 = COGL_FIXED_FROM_INT (GPOINTER_TO_INT (iter->data)); - x1 = COGL_FIXED_FROM_INT (GPOINTER_TO_INT (next->data)); - y0 = COGL_FIXED_FROM_INT (bounds_y + i); - y1 = COGL_FIXED_FROM_INT (bounds_y + i + 1) + 2048; + x0 = (float)(GPOINTER_TO_INT (iter->data)); + x1 = (float)(GPOINTER_TO_INT (next->data)); + y0 = (float)(bounds_y + i); + y1 = (float)(bounds_y + i + 1) + 2048; /* render scanlines 1.0625 high to avoid gaps when transformed */ diff --git a/clutter/cogl/gles/cogl-texture.c b/clutter/cogl/gles/cogl-texture.c index 7de7095..9f99ef3 100644 --- a/clutter/cogl/gles/cogl-texture.c +++ b/clutter/cogl/gles/cogl-texture.c @@ -63,15 +63,15 @@ struct _CoglSpanIter gint index; GArray *array; CoglTexSliceSpan *span; - CoglFixed pos; - CoglFixed next_pos; - CoglFixed origin; - CoglFixed cover_start; - CoglFixed cover_end; - CoglFixed intersect_start; - CoglFixed intersect_end; - CoglFixed intersect_start_local; - CoglFixed intersect_end_local; + float pos; + float next_pos; + float origin; + float cover_start; + float cover_end; + float intersect_start; + float intersect_end; + float intersect_start_local; + float intersect_end_local; gboolean intersects; }; @@ -116,7 +116,7 @@ _cogl_span_iter_update (CoglSpanIter *iter) /* Offset next position by span size */ iter->next_pos = iter->pos + - COGL_FIXED_FROM_INT (iter->span->size - iter->span->waste); + (float)(iter->span->size - iter->span->waste); /* Check if span intersects the area to cover */ if (iter->next_pos <= iter->cover_start || @@ -145,9 +145,9 @@ _cogl_span_iter_update (CoglSpanIter *iter) static void _cogl_span_iter_begin (CoglSpanIter *iter, GArray *array, - CoglFixed origin, - CoglFixed cover_start, - CoglFixed cover_end) + float origin, + float cover_start, + float cover_end) { /* Copy info */ iter->index = 0; @@ -398,10 +398,10 @@ _cogl_texture_draw_and_read (CoglTexture *tex, GLint *viewport) { gint bpp; - CoglFixed rx1, ry1; - CoglFixed rx2, ry2; - CoglFixed tx1, ty1; - CoglFixed tx2, ty2; + float rx1, ry1; + float rx2, ry2; + float tx1, ty1; + float tx2, ty2; int bw, bh; CoglBitmap rect_bmp; CoglHandle handle; @@ -422,9 +422,9 @@ _cogl_texture_draw_and_read (CoglTexture *tex, /* Draw the texture image */ cogl_texture_rectangle (handle, 0, 0, - COGL_FIXED_FROM_INT (tex->bitmap.width), - COGL_FIXED_FROM_INT (tex->bitmap.height), - 0, 0, COGL_FIXED_1, COGL_FIXED_1); + (float)(tex->bitmap.width), + (float)(tex->bitmap.height), + 0, 0, 1.0, 1.0); /* Read into target bitmap */ prep_for_gl_pixels_download (tex->bitmap.rowstride); @@ -439,7 +439,7 @@ _cogl_texture_draw_and_read (CoglTexture *tex, ry1 = 0; ry2 = 0; ty1 = 0; ty2 = 0; -#define CFIX COGL_FIXED_FROM_INT +#define CFIX (float) /* Walk Y axis until whole bitmap height consumed */ for (bh = tex->bitmap.height; bh > 0; bh -= viewport[3]) @@ -450,7 +450,7 @@ _cogl_texture_draw_and_read (CoglTexture *tex, /* Normalized texture Y coords */ ty1 = ty2; - ty2 = COGL_FIXED_DIV (CFIX (ry2), CFIX (tex->bitmap.height)); + ty2 = (CFIX (ry2) / CFIX (tex->bitmap.height)); rx1 = 0; rx2 = 0; tx1 = 0; tx2 = 0; @@ -464,7 +464,7 @@ _cogl_texture_draw_and_read (CoglTexture *tex, /* Normalized texture X coords */ tx1 = tx2; - tx2 = COGL_FIXED_DIV (CFIX (rx2), CFIX (tex->bitmap.width)); + tx2 = (CFIX (rx2) / CFIX (tex->bitmap.width)); /* Clear buffer with transparent black, draw with white for direct copy to framebuffer */ @@ -544,10 +544,10 @@ _cogl_texture_download_from_gl (CoglTexture *tex, GE( cogl_wrap_glPushMatrix () ); GE( cogl_wrap_glLoadIdentity () ); - GE( cogl_wrap_glOrthox (0, COGL_FIXED_FROM_INT (viewport[2]), - 0, COGL_FIXED_FROM_INT (viewport[3]), - COGL_FIXED_FROM_INT (0), - COGL_FIXED_FROM_INT (100)) ); + GE( cogl_wrap_glOrthof (0, (float)(viewport[2]), + 0, (float)(viewport[3]), + (float)(0), + (float)(100)) ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); GE( cogl_wrap_glPushMatrix () ); @@ -662,8 +662,8 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, /* Iterate vertical spans */ for (source_y = src_y, _cogl_span_iter_begin (&y_iter, tex->slice_y_spans, - 0, COGL_FIXED_FROM_INT (dst_y), - COGL_FIXED_FROM_INT (dst_y + height)); + 0, (float)(dst_y), + (float)(dst_y + height)); !_cogl_span_iter_end (&y_iter); @@ -683,8 +683,8 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, /* Iterate horizontal spans */ for (source_x = src_x, _cogl_span_iter_begin (&x_iter, tex->slice_x_spans, - 0, COGL_FIXED_FROM_INT (dst_x), - COGL_FIXED_FROM_INT (dst_x + width)); + 0, (float)(dst_x), + (float)(dst_x + width)); !_cogl_span_iter_end (&x_iter); @@ -702,15 +702,15 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, x_iter.index); /* Pick intersection width and height */ - inter_w = COGL_FIXED_TO_INT (x_iter.intersect_end - + inter_w = (x_iter.intersect_end - x_iter.intersect_start); - inter_h = COGL_FIXED_TO_INT (y_iter.intersect_end - + inter_h = (y_iter.intersect_end - y_iter.intersect_start); /* Localize intersection top-left corner to slice*/ - local_x = COGL_FIXED_TO_INT (x_iter.intersect_start - + local_x = (x_iter.intersect_start - x_iter.pos); - local_y = COGL_FIXED_TO_INT (y_iter.intersect_start - + local_y = (y_iter.intersect_start - y_iter.pos); /* Pick slice GL handle */ @@ -768,7 +768,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint wx, wy; src = source_bmp->data - + (src_y + COGL_FIXED_TO_INT (y_iter.intersect_start) + + (src_y + (y_iter.intersect_start) - dst_y) * source_bmp->rowstride + (src_x + x_span->start + x_span->size - x_span->waste @@ -813,7 +813,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint copy_width; src = source_bmp->data - + (src_x + COGL_FIXED_TO_INT (x_iter.intersect_start) + + (src_x + (x_iter.intersect_start) - dst_x) * bpp + (src_y + y_span->start + y_span->size - y_span->waste @@ -2148,24 +2148,24 @@ _cogl_texture_add_quad_vertices (GLfloat x1, GLfloat y1, static void _cogl_texture_quad_sw (CoglTexture *tex, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2) + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2) { CoglSpanIter iter_x , iter_y; - CoglFixed tw , th; - CoglFixed tqx , tqy; - CoglFixed first_tx , first_ty; - CoglFixed first_qx , first_qy; - CoglFixed slice_tx1 , slice_ty1; - CoglFixed slice_tx2 , slice_ty2; - CoglFixed slice_qx1 , slice_qy1; - CoglFixed slice_qx2 , slice_qy2; + float tw , th; + float tqx , tqy; + float first_tx , first_ty; + float first_qx , first_qy; + float slice_tx1 , slice_ty1; + float slice_tx2 , slice_ty2; + float slice_qx1 , slice_qy1; + float slice_qx2 , slice_qy2; GLuint gl_handle; _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -2180,7 +2180,7 @@ _cogl_texture_quad_sw (CoglTexture *tex, slices */ if (tx2 < tx1) { - CoglFixed temp = x1; + float temp = x1; x1 = x2; x2 = temp; temp = tx1; @@ -2189,7 +2189,7 @@ _cogl_texture_quad_sw (CoglTexture *tex, } if (ty2 < ty1) { - CoglFixed temp = y1; + float temp = y1; y1 = y2; y2 = temp; temp = ty1; @@ -2198,27 +2198,27 @@ _cogl_texture_quad_sw (CoglTexture *tex, } /* Scale ratio from texture to quad widths */ - tw = COGL_FIXED_FROM_INT (tex->bitmap.width); - th = COGL_FIXED_FROM_INT (tex->bitmap.height); + tw = (float)(tex->bitmap.width); + th = (float)(tex->bitmap.height); - tqx = COGL_FIXED_DIV (x2 - x1, COGL_FIXED_MUL (tw, (tx2 - tx1))); - tqy = COGL_FIXED_DIV (y2 - y1, COGL_FIXED_MUL (th, (ty2 - ty1))); + tqx = (x2 - x1 / (tw * (tx2 - tx1))); + tqy = (y2 - y1 / (th * (ty2 - ty1))); /* Integral texture coordinate for first tile */ - first_tx = COGL_FIXED_FROM_INT (COGL_FIXED_FLOOR (tx1)); - first_ty = COGL_FIXED_FROM_INT (COGL_FIXED_FLOOR (ty1)); + first_tx = (float)(floorf (tx1)); + first_ty = (float)(floorf (ty1)); /* Denormalize texture coordinates */ - first_tx = COGL_FIXED_MUL (first_tx, tw); - first_ty = COGL_FIXED_MUL (first_ty, th); - tx1 = COGL_FIXED_MUL (tx1, tw); - ty1 = COGL_FIXED_MUL (ty1, th); - tx2 = COGL_FIXED_MUL (tx2, tw); - ty2 = COGL_FIXED_MUL (ty2, th); + first_tx = (first_tx * tw); + first_ty = (first_ty * th); + tx1 = (tx1 * tw); + ty1 = (ty1 * th); + tx2 = (tx2 * tw); + ty2 = (ty2 * th); /* Quad coordinate of the first tile */ - first_qx = x1 - COGL_FIXED_MUL (tx1 - first_tx, tqx); - first_qy = y1 - COGL_FIXED_MUL (ty1 - first_ty, tqy); + first_qx = x1 - (tx1 - first_tx * tqx); + first_qy = y1 - (ty1 - first_ty * tqy); /* Iterate until whole quad height covered */ @@ -2232,10 +2232,10 @@ _cogl_texture_quad_sw (CoglTexture *tex, /* Span-quad intersection in quad coordinates */ slice_qy1 = first_qy + - COGL_FIXED_MUL (iter_y.intersect_start - first_ty, tqy); + (iter_y.intersect_start - first_ty * tqy); slice_qy2 = first_qy + - COGL_FIXED_MUL (iter_y.intersect_end - first_ty, tqy); + (iter_y.intersect_end - first_ty * tqy); /* Localize slice texture coordinates */ slice_ty1 = iter_y.intersect_start - iter_y.pos; @@ -2257,10 +2257,10 @@ _cogl_texture_quad_sw (CoglTexture *tex, /* Span-quad intersection in quad coordinates */ slice_qx1 = first_qx + - COGL_FIXED_MUL (iter_x.intersect_start - first_tx, tqx); + (iter_x.intersect_start - first_tx * tqx); slice_qx2 = first_qx + - COGL_FIXED_MUL (iter_x.intersect_end - first_tx, tqx); + (iter_x.intersect_end - first_tx * tqx); /* Localize slice texture coordinates */ slice_tx1 = iter_x.intersect_start - iter_x.pos; @@ -2273,14 +2273,14 @@ _cogl_texture_quad_sw (CoglTexture *tex, #if COGL_DEBUG printf("~~~~~ slice (%d,%d)\n", iter_x.index, iter_y.index); - printf("qx1: %f\n", COGL_FIXED_TO_FLOAT (slice_qx1)); - printf("qy1: %f\n", COGL_FIXED_TO_FLOAT (slice_qy1)); - printf("qx2: %f\n", COGL_FIXED_TO_FLOAT (slice_qx2)); - printf("qy2: %f\n", COGL_FIXED_TO_FLOAT (slice_qy2)); - printf("tx1: %f\n", COGL_FIXED_TO_FLOAT (slice_tx1)); - printf("ty1: %f\n", COGL_FIXED_TO_FLOAT (slice_ty1)); - printf("tx2: %f\n", COGL_FIXED_TO_FLOAT (slice_tx2)); - printf("ty2: %f\n", COGL_FIXED_TO_FLOAT (slice_ty2)); + printf("qx1: %f\n", (slice_qx1)); + printf("qy1: %f\n", (slice_qy1)); + printf("qx2: %f\n", (slice_qx2)); + printf("qy2: %f\n", (slice_qy2)); + printf("tx1: %f\n", (slice_tx1)); + printf("ty1: %f\n", (slice_ty1)); + printf("tx2: %f\n", (slice_tx2)); + printf("ty2: %f\n", (slice_ty2)); #endif /* Pick and bind opengl texture object */ @@ -2297,28 +2297,28 @@ _cogl_texture_quad_sw (CoglTexture *tex, ctx->texture_current = gl_handle; ctx->texture_format = tex->gl_intformat; - _cogl_texture_add_quad_vertices (COGL_FIXED_TO_FLOAT (slice_qx1), - COGL_FIXED_TO_FLOAT (slice_qy1), - COGL_FIXED_TO_FLOAT (slice_qx2), - COGL_FIXED_TO_FLOAT (slice_qy2), - COGL_FIXED_TO_FLOAT (slice_tx1), - COGL_FIXED_TO_FLOAT (slice_ty1), - COGL_FIXED_TO_FLOAT (slice_tx2), - COGL_FIXED_TO_FLOAT (slice_ty2)); + _cogl_texture_add_quad_vertices ( (slice_qx1), + (slice_qy1), + (slice_qx2), + (slice_qy2), + (slice_tx1), + (slice_ty1), + (slice_tx2), + (slice_ty2)); } } } static void _cogl_texture_quad_hw (CoglTexture *tex, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2) + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2) { GLuint gl_handle; CoglTexSliceSpan *x_span; @@ -2352,19 +2352,19 @@ _cogl_texture_quad_hw (CoglTexture *tex, ty1 = ty1 * (y_span->size - y_span->waste) / y_span->size; ty2 = ty2 * (y_span->size - y_span->waste) / y_span->size; - _cogl_texture_add_quad_vertices (COGL_FIXED_TO_FLOAT (x1), - COGL_FIXED_TO_FLOAT (y1), - COGL_FIXED_TO_FLOAT (x2), - COGL_FIXED_TO_FLOAT (y2), - COGL_FIXED_TO_FLOAT (tx1), - COGL_FIXED_TO_FLOAT (ty1), - COGL_FIXED_TO_FLOAT (tx2), - COGL_FIXED_TO_FLOAT (ty2)); + _cogl_texture_add_quad_vertices ( (x1), + (y1), + (x2), + (y2), + (tx1), + (ty1), + (tx2), + (ty2)); } void cogl_texture_multiple_rectangles (CoglHandle handle, - const CoglFixed *verts, + const float *verts, guint n_rects) { CoglTexture *tex; @@ -2411,10 +2411,10 @@ cogl_texture_multiple_rectangles (CoglHandle handle, if (tex->slice_gl_handles->len == 1 && ((cogl_features_available (COGL_FEATURE_TEXTURE_NPOT) && tex->gl_target == GL_TEXTURE_2D) - || (verts[4] >= 0 && verts[4] <= COGL_FIXED_1 - && verts[6] >= 0 && verts[6] <= COGL_FIXED_1 - && verts[5] >= 0 && verts[5] <= COGL_FIXED_1 - && verts[7] >= 0 && verts[7] <= COGL_FIXED_1))) + || (verts[4] >= 0 && verts[4] <= 1.0 + && verts[6] >= 0 && verts[6] <= 1.0 + && verts[5] >= 0 && verts[5] <= 1.0 + && verts[7] >= 0 && verts[7] <= 1.0))) _cogl_texture_quad_hw (tex, verts[0],verts[1], verts[2],verts[3], verts[4],verts[5], verts[6],verts[7]); else @@ -2430,16 +2430,16 @@ cogl_texture_multiple_rectangles (CoglHandle handle, void cogl_texture_rectangle (CoglHandle handle, - CoglFixed x1, - CoglFixed y1, - CoglFixed x2, - CoglFixed y2, - CoglFixed tx1, - CoglFixed ty1, - CoglFixed tx2, - CoglFixed ty2) + float x1, + float y1, + float x2, + float y2, + float tx1, + float ty1, + float tx2, + float ty2) { - CoglFixed verts[8]; + float verts[8]; verts[0] = x1; verts[1] = y1; @@ -2541,7 +2541,7 @@ cogl_texture_polygon (CoglHandle handle, OpenGL */ for (i = 0; i < n_vertices; i++, p++) { -#define CFX_F COGL_FIXED_TO_FLOAT +#define CFX_F p->v[0] = CFX_F(vertices[i].x); p->v[1] = CFX_F(vertices[i].y); diff --git a/clutter/cogl/gles/cogl.c b/clutter/cogl/gles/cogl.c index bb4a0ea..226f2e4 100644 --- a/clutter/cogl/gles/cogl.c +++ b/clutter/cogl/gles/cogl.c @@ -116,41 +116,41 @@ cogl_pop_matrix (void) } void -cogl_scale (CoglFixed x, CoglFixed y) +cogl_scale (float x, float y) { - GE( cogl_wrap_glScalex (x, y, COGL_FIXED_1) ); + GE( cogl_wrap_glScalef (x, y, 1.0) ); } void -cogl_translatex (CoglFixed x, CoglFixed y, CoglFixed z) +cogl_translatex (float x, float y, float z) { - GE( cogl_wrap_glTranslatex (x, y, z) ); + GE( cogl_wrap_glTranslatef (x, y, z) ); } void cogl_translate (gint x, gint y, gint z) { - GE( cogl_wrap_glTranslatex (COGL_FIXED_FROM_INT(x), - COGL_FIXED_FROM_INT(y), - COGL_FIXED_FROM_INT(z)) ); + GE( cogl_wrap_glTranslatef ((float)(x), + (float)(y), + (float)(z)) ); } void -cogl_rotatex (CoglFixed angle, - CoglFixed x, - CoglFixed y, - CoglFixed z) +cogl_rotatex (float angle, + float x, + float y, + float z) { - GE( cogl_wrap_glRotatex (angle,x,y,z) ); + GE( cogl_wrap_glRotatef (angle,x,y,z) ); } void cogl_rotate (gint angle, gint x, gint y, gint z) { - GE( cogl_wrap_glRotatex (COGL_FIXED_FROM_INT(angle), - COGL_FIXED_FROM_INT(x), - COGL_FIXED_FROM_INT(y), - COGL_FIXED_FROM_INT(z)) ); + GE( cogl_wrap_glRotatef ((float)(angle), + (float)(x), + (float)(y), + (float)(z)) ); } static inline gboolean @@ -315,7 +315,7 @@ cogl_set_source_color (const CoglColor *color) #else /* conversion can cause issues with picking on some gles implementations */ - GE( cogl_wrap_glColor4x (cogl_color_get_red (color), + GE( cogl_wrap_glColor4f (cogl_color_get_red (color), cogl_color_get_green (color), cogl_color_get_blue (color), cogl_color_get_alpha (color)) ); @@ -326,22 +326,22 @@ cogl_set_source_color (const CoglColor *color) } static void -apply_matrix (const CoglFixed *matrix, CoglFixed *vertex) +apply_matrix (const float *matrix, float *vertex) { int x, y; - CoglFixed vertex_out[4] = { 0 }; + float vertex_out[4] = { 0 }; for (y = 0; y < 4; y++) for (x = 0; x < 4; x++) - vertex_out[y] += cogl_fixed_mul (vertex[x], matrix[y + x * 4]); + vertex_out[y] += (vertex[x] * matrix[y + x * 4]); memcpy (vertex, vertex_out, sizeof (vertex_out)); } static void -project_vertex (CoglFixed *modelview, - CoglFixed *project, - CoglFixed *vertex) +project_vertex (float *modelview, + float *project, + float *vertex) { int i; @@ -351,21 +351,21 @@ project_vertex (CoglFixed *modelview, apply_matrix (project, vertex); /* Convert from homogenized coordinates */ for (i = 0; i < 4; i++) - vertex[i] = cogl_fixed_div (vertex[i], vertex[3]); + vertex[i] = (vertex[i] / vertex[3]); } static void set_clip_plane (GLint plane_num, - const CoglFixed *vertex_a, - const CoglFixed *vertex_b) + const float *vertex_a, + const float *vertex_b) { - GLfixed plane[4]; - GLfixed angle; + GLfloat plane[4]; + GLfloat angle; _COGL_GET_CONTEXT (ctx, NO_RETVAL); /* Calculate the angle between the axes and the line crossing the two points */ - angle = cogl_fixed_mul (cogl_fixed_atan2 (vertex_b[1] - vertex_a[1], + angle = (atan2f (vertex_b[1] - vertex_a[1] * vertex_b[0] - vertex_a[0]), COGL_RADIANS_TO_DEGREES); @@ -374,36 +374,36 @@ set_clip_plane (GLint plane_num, projection matrix so we can specify the plane in screen coordinates */ GE( cogl_wrap_glLoadIdentity () ); - GE( cogl_wrap_glMultMatrixx ((GLfixed *) ctx->inverse_projection) ); + GE( cogl_wrap_glMultMatrixf ((GLfloat *) ctx->inverse_projection) ); /* Rotate about point a */ - GE( cogl_wrap_glTranslatex (vertex_a[0], vertex_a[1], vertex_a[2]) ); + GE( cogl_wrap_glTranslatef (vertex_a[0], vertex_a[1], vertex_a[2]) ); /* Rotate the plane by the calculated angle so that it will connect the two points */ - GE( cogl_wrap_glRotatex (angle, 0.0f, 0.0f, 1.0f) ); - GE( cogl_wrap_glTranslatex (-vertex_a[0], -vertex_a[1], -vertex_a[2]) ); + GE( cogl_wrap_glRotatef (angle, 0.0f, 0.0f, 1.0f) ); + GE( cogl_wrap_glTranslatef (-vertex_a[0], -vertex_a[1], -vertex_a[2]) ); plane[0] = 0; - plane[1] = -COGL_FIXED_1; + plane[1] = -1.0; plane[2] = 0; plane[3] = vertex_a[1]; - GE( cogl_wrap_glClipPlanex (plane_num, plane) ); + GE( cogl_wrap_glClipPlanef (plane_num, plane) ); GE( cogl_wrap_glPopMatrix () ); } void -_cogl_set_clip_planes (CoglFixed x_offset, - CoglFixed y_offset, - CoglFixed width, - CoglFixed height) +_cogl_set_clip_planes (float x_offset, + float y_offset, + float width, + float height) { - GLfixed modelview[16], projection[16]; + GLfloat modelview[16], projection[16]; - CoglFixed vertex_tl[4] = { x_offset, y_offset, 0, COGL_FIXED_1 }; - CoglFixed vertex_tr[4] = { x_offset + width, y_offset, 0, COGL_FIXED_1 }; - CoglFixed vertex_bl[4] = { x_offset, y_offset + height, 0, COGL_FIXED_1 }; - CoglFixed vertex_br[4] = { x_offset + width, y_offset + height, - 0, COGL_FIXED_1 }; + float vertex_tl[4] = { x_offset, y_offset, 0, 1.0 }; + float vertex_tr[4] = { x_offset + width, y_offset, 0, 1.0 }; + float vertex_bl[4] = { x_offset, y_offset + height, 0, 1.0 }; + float vertex_br[4] = { x_offset + width, y_offset + height, + 0, 1.0 }; GE( cogl_wrap_glGetFixedv (GL_MODELVIEW_MATRIX, modelview) ); GE( cogl_wrap_glGetFixedv (GL_PROJECTION_MATRIX, projection) ); @@ -421,7 +421,7 @@ _cogl_set_clip_planes (CoglFixed x_offset, if ((vertex_tl[0] < vertex_tr[0] ? 1 : 0) != (vertex_bl[1] < vertex_tl[1] ? 1 : 0)) { - CoglFixed temp[4]; + float temp[4]; memcpy (temp, vertex_tl, sizeof (temp)); memcpy (vertex_tl, vertex_tr, sizeof (temp)); memcpy (vertex_tr, temp, sizeof (temp)); @@ -437,10 +437,10 @@ _cogl_set_clip_planes (CoglFixed x_offset, } void -_cogl_add_stencil_clip (CoglFixed x_offset, - CoglFixed y_offset, - CoglFixed width, - CoglFixed height, +_cogl_add_stencil_clip (float x_offset, + float y_offset, + float width, + float height, gboolean first) { _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -476,9 +476,9 @@ _cogl_add_stencil_clip (CoglFixed x_offset, GE( cogl_wrap_glMatrixMode (GL_PROJECTION) ); GE( cogl_wrap_glPushMatrix () ); GE( cogl_wrap_glLoadIdentity () ); - cogl_rectanglex (-COGL_FIXED_1, -COGL_FIXED_1, - COGL_FIXED_FROM_INT (2), - COGL_FIXED_FROM_INT (2)); + cogl_rectanglex (-1.0, -1.0, + (float)(2), + (float)(2)); GE( cogl_wrap_glPopMatrix () ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); GE( cogl_wrap_glPopMatrix () ); @@ -490,10 +490,10 @@ _cogl_add_stencil_clip (CoglFixed x_offset, } void -_cogl_set_matrix (const CoglFixed *matrix) +_cogl_set_matrix (const float *matrix) { GE( cogl_wrap_glLoadIdentity () ); - GE( cogl_wrap_glMultMatrixx (matrix) ); + GE( cogl_wrap_glMultMatrixf (matrix) ); } void @@ -522,25 +522,25 @@ _cogl_disable_clip_planes (void) void cogl_alpha_func (COGLenum func, - CoglFixed ref) + float ref) { - GE( cogl_wrap_glAlphaFunc (func, COGL_FIXED_TO_FLOAT(ref)) ); + GE( cogl_wrap_glAlphaFunc (func, (ref)) ); } /* * Fixed point implementation of the perspective function */ void -cogl_perspective (CoglFixed fovy, - CoglFixed aspect, - CoglFixed zNear, - CoglFixed zFar) +cogl_perspective (float fovy, + float aspect, + float zNear, + float zFar) { - CoglFixed xmax, ymax; - CoglFixed x, y, c, d; - CoglFixed fovy_rad_half = cogl_fixed_mul (fovy, COGL_FIXED_PI) / 360; + float xmax, ymax; + float x, y, c, d; + float fovy_rad_half = (fovy * G_PI) / 360; - GLfixed m[16]; + GLfloat m[16]; _COGL_GET_CONTEXT (ctx, NO_RETVAL); @@ -558,76 +558,76 @@ cogl_perspective (CoglFixed fovy, * 2) When working with small numbers, we can are loosing significant * precision */ - ymax = cogl_fixed_mul (zNear, - cogl_fixed_div (cogl_fixed_sin (fovy_rad_half), - cogl_fixed_cos (fovy_rad_half))); - xmax = cogl_fixed_mul (ymax, aspect); + ymax = (zNear * + (sinf (fovy_rad_half) / + cosf (fovy_rad_half))); + xmax = (ymax * aspect); - x = cogl_fixed_div (zNear, xmax); - y = cogl_fixed_div (zNear, ymax); - c = cogl_fixed_div (-(zFar + zNear), ( zFar - zNear)); - d = cogl_fixed_div (-(cogl_fixed_mul (2 * zFar, zNear)), (zFar - zNear)); + x = (zNear / xmax); + y = (zNear / ymax); + c = (-(zFar + zNear) / ( zFar - zNear)); + d = (-((2 * zFar * zNear)) / (zFar - zNear)); #define M(row,col) m[col*4+row] M(0,0) = x; M(1,1) = y; M(2,2) = c; M(2,3) = d; - M(3,2) = -COGL_FIXED_1; + M(3,2) = -1.0; - GE( cogl_wrap_glMultMatrixx (m) ); + GE( cogl_wrap_glMultMatrixf (m) ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); /* Calculate and store the inverse of the matrix */ - memset (ctx->inverse_projection, 0, sizeof (CoglFixed) * 16); + memset (ctx->inverse_projection, 0, sizeof (float) * 16); #define m ctx->inverse_projection - M(0, 0) = cogl_fixed_div (COGL_FIXED_1, x); - M(1, 1) = cogl_fixed_div (COGL_FIXED_1, y); - M(2, 3) = -COGL_FIXED_1; - M(3, 2) = cogl_fixed_div (COGL_FIXED_1, d); - M(3, 3) = cogl_fixed_div (c, d); + M(0, 0) = (1.0 / x); + M(1, 1) = (1.0 / y); + M(2, 3) = -1.0; + M(3, 2) = (1.0 / d); + M(3, 3) = (c / d); #undef m #undef M } void -cogl_frustum (CoglFixed left, - CoglFixed right, - CoglFixed bottom, - CoglFixed top, - CoglFixed z_near, - CoglFixed z_far) +cogl_frustum (float left, + float right, + float bottom, + float top, + float z_near, + float z_far) { - CoglFixed c, d; + float c, d; _COGL_GET_CONTEXT (ctx, NO_RETVAL); GE( cogl_wrap_glMatrixMode (GL_PROJECTION) ); GE( cogl_wrap_glLoadIdentity () ); - GE( cogl_wrap_glFrustumx (left, right, + GE( cogl_wrap_glFrustumf (left, right, bottom, top, z_near, z_far) ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); /* Calculate and store the inverse of the matrix */ - memset (ctx->inverse_projection, 0, sizeof (CoglFixed) * 16); + memset (ctx->inverse_projection, 0, sizeof (float) * 16); - c = -cogl_fixed_div (z_far + z_near, z_far - z_near); - d = -cogl_fixed_div (2 * cogl_fixed_mul (z_far, z_near), z_far - z_near); + c = -(z_far + z_near / z_far - z_near); + d = -(2 * (z_far * z_near) / z_far - z_near); #define M(row,col) ctx->inverse_projection[col*4+row] - M(0,0) = cogl_fixed_div (right - left, 2 * z_near); - M(0,3) = cogl_fixed_div (right + left, 2 * z_near); - M(1,1) = cogl_fixed_div (top - bottom, 2 * z_near); - M(1,3) = cogl_fixed_div (top + bottom, 2 * z_near); - M(2,3) = -COGL_FIXED_1; - M(3,2) = cogl_fixed_div (COGL_FIXED_1, d); - M(3,3) = cogl_fixed_div (c, d); + M(0,0) = (right - left / 2 * z_near); + M(0,3) = (right + left / 2 * z_near); + M(1,1) = (top - bottom / 2 * z_near); + M(1,3) = (top + bottom / 2 * z_near); + M(2,3) = -1.0; + M(3,2) = (1.0 / d); + M(3,3) = (c / d); #undef M } @@ -641,19 +641,19 @@ cogl_viewport (guint width, void cogl_setup_viewport (guint w, guint h, - CoglFixed fovy, - CoglFixed aspect, - CoglFixed z_near, - CoglFixed z_far) + float fovy, + float aspect, + float z_near, + float z_far) { gint width = (gint) w; gint height = (gint) h; - CoglFixed z_camera; + float z_camera; GE( glViewport (0, 0, width, height) ); /* For Ortho projection. - * cogl_wrap_glOrthox (0, width << 16, 0, height << 16, -1 << 16, 1 << 16); + * cogl_wrap_glOrthof (0, width << 16, 0, height << 16, -1 << 16, 1 << 16); */ cogl_perspective (fovy, aspect, z_near, z_far); @@ -666,24 +666,24 @@ cogl_setup_viewport (guint w, * See comments in ../gl/cogl.c */ #define DEFAULT_Z_CAMERA 0.869f - z_camera = COGL_FIXED_FROM_FLOAT (DEFAULT_Z_CAMERA); + z_camera = (DEFAULT_Z_CAMERA); - if (fovy != COGL_FIXED_60) + if (fovy != 60.0) { - CoglFixed fovy_rad = cogl_fixed_mul (fovy, COGL_FIXED_PI) / 180; + float fovy_rad = (fovy * G_PI) / 180; - z_camera = cogl_fixed_div (cogl_fixed_sin (fovy_rad), - cogl_fixed_cos (fovy_rad)) >> 1; + z_camera = (sinf (fovy_rad) / + cosf (fovy_rad)) >> 1; } - GE( cogl_wrap_glTranslatex (-1 << 15, -1 << 15, -z_camera) ); + GE( cogl_wrap_glTranslatef (-1 << 15, -1 << 15, -z_camera) ); - GE( cogl_wrap_glScalex ( COGL_FIXED_1 / width, - -COGL_FIXED_1 / height, - COGL_FIXED_1 / width) ); + GE( cogl_wrap_glScalef ( 1.0 / width, + -1.0 / height, + 1.0 / width) ); - GE( cogl_wrap_glTranslatex (0, -COGL_FIXED_1 * height, 0) ); + GE( cogl_wrap_glTranslatef (0, -1.0 * height, 0) ); } static void @@ -735,19 +735,19 @@ cogl_features_available (CoglFeatureFlags features) } void -cogl_get_modelview_matrix (CoglFixed m[16]) +cogl_get_modelview_matrix (float m[16]) { cogl_wrap_glGetFixedv(GL_MODELVIEW_MATRIX, &m[0]); } void -cogl_get_projection_matrix (CoglFixed m[16]) +cogl_get_projection_matrix (float m[16]) { cogl_wrap_glGetFixedv(GL_PROJECTION_MATRIX, &m[0]); } void -cogl_get_viewport (CoglFixed v[4]) +cogl_get_viewport (float v[4]) { GLint viewport[4]; int i; @@ -755,7 +755,7 @@ cogl_get_viewport (CoglFixed v[4]) cogl_wrap_glGetIntegerv (GL_VIEWPORT, viewport); for (i = 0; i < 4; i++) - v[i] = COGL_FIXED_FROM_INT (viewport[i]); + v[i] = (float)(viewport[i]); } void @@ -773,11 +773,11 @@ cogl_get_bitmasks (gint *red, gint *green, gint *blue, gint *alpha) void cogl_fog_set (const CoglColor *fog_color, - CoglFixed density, - CoglFixed z_near, - CoglFixed z_far) + float density, + float z_near, + float z_far) { - GLfixed fogColor[4]; + GLfloat fogColor[4]; fogColor[0] = cogl_color_get_red (fog_color); fogColor[1] = cogl_color_get_green (fog_color); @@ -786,12 +786,12 @@ cogl_fog_set (const CoglColor *fog_color, cogl_wrap_glEnable (GL_FOG); - cogl_wrap_glFogxv (GL_FOG_COLOR, fogColor); + cogl_wrap_glFogfv (GL_FOG_COLOR, fogColor); - cogl_wrap_glFogx (GL_FOG_MODE, GL_LINEAR); + cogl_wrap_glFogf (GL_FOG_MODE, GL_LINEAR); glHint (GL_FOG_HINT, GL_NICEST); - cogl_wrap_glFogx (GL_FOG_DENSITY, (GLfixed) density); - cogl_wrap_glFogx (GL_FOG_START, (GLfixed) z_near); - cogl_wrap_glFogx (GL_FOG_END, (GLfixed) z_far); + cogl_wrap_glFogf (GL_FOG_DENSITY, (GLfloat) density); + cogl_wrap_glFogf (GL_FOG_START, (GLfloat) z_near); + cogl_wrap_glFogf (GL_FOG_END, (GLfloat) z_far); } diff --git a/clutter/pango/cogl-pango-glyph-cache.c b/clutter/pango/cogl-pango-glyph-cache.c index 7a2bf2f..8194d7a 100644 --- a/clutter/pango/cogl-pango-glyph-cache.c +++ b/clutter/pango/cogl-pango-glyph-cache.c @@ -342,13 +342,13 @@ cogl_pango_glyph_cache_set (CoglPangoGlyphCache *cache, value = g_slice_new (CoglPangoGlyphCacheValue); value->texture = cogl_texture_ref (band->texture); - value->tx1 = COGL_FIXED_FROM_INT (band->space_remaining) + value->tx1 = (float)(band->space_remaining) / band->texture_size; - value->tx2 = COGL_FIXED_FROM_INT (band->space_remaining + width) + value->tx2 = (float)(band->space_remaining + width) / band->texture_size; - value->ty1 = COGL_FIXED_FROM_INT (band->top) + value->ty1 = (float)(band->top) / band->texture_size; - value->ty2 = COGL_FIXED_FROM_INT (band->top + height) + value->ty2 = (float)(band->top + height) / band->texture_size; value->draw_x = draw_x; value->draw_y = draw_y; diff --git a/clutter/pango/cogl-pango-glyph-cache.h b/clutter/pango/cogl-pango-glyph-cache.h index 2f4b579..33364e1 100644 --- a/clutter/pango/cogl-pango-glyph-cache.h +++ b/clutter/pango/cogl-pango-glyph-cache.h @@ -37,10 +37,10 @@ struct _CoglPangoGlyphCacheValue { CoglHandle texture; - CoglFixed tx1; - CoglFixed ty1; - CoglFixed tx2; - CoglFixed ty2; + float tx1; + float ty1; + float tx2; + float ty2; int draw_x; int draw_y; diff --git a/clutter/pango/cogl-pango-render.c b/clutter/pango/cogl-pango-render.c index e69c412..d8f87fb 100644 --- a/clutter/pango/cogl-pango-render.c +++ b/clutter/pango/cogl-pango-render.c @@ -67,7 +67,7 @@ cogl_pango_renderer_glyphs_end (CoglPangoRenderer *priv) { if (priv->glyph_rectangles->len > 0) { - CoglFixed *rectangles = (CoglFixed *) priv->glyph_rectangles->data; + float *rectangles = (float *) priv->glyph_rectangles->data; cogl_texture_multiple_rectangles (priv->glyph_texture, rectangles, priv->glyph_rectangles->len / 8); g_array_set_size (priv->glyph_rectangles, 0); @@ -77,11 +77,11 @@ cogl_pango_renderer_glyphs_end (CoglPangoRenderer *priv) static void cogl_pango_renderer_draw_glyph (CoglPangoRenderer *priv, CoglPangoGlyphCacheValue *cache_value, - CoglFixed x1, - CoglFixed y1) + float x1, + float y1) { - CoglFixed x2, y2; - CoglFixed *p; + float x2, y2; + float *p; if (priv->glyph_rectangles->len > 0 && priv->glyph_texture != cache_value->texture) @@ -93,7 +93,7 @@ cogl_pango_renderer_draw_glyph (CoglPangoRenderer *priv, y2 = y1 + CLUTTER_INT_TO_FIXED (cache_value->draw_height); g_array_set_size (priv->glyph_rectangles, priv->glyph_rectangles->len + 8); - p = &g_array_index (priv->glyph_rectangles, CoglFixed, + p = &g_array_index (priv->glyph_rectangles, float, priv->glyph_rectangles->len - 8); *(p++) = x1; *(p++) = y1; @@ -133,7 +133,7 @@ cogl_pango_renderer_init (CoglPangoRenderer *priv) priv->glyph_cache = cogl_pango_glyph_cache_new (FALSE); priv->mipmapped_glyph_cache = cogl_pango_glyph_cache_new (TRUE); priv->use_mipmapping = FALSE; - priv->glyph_rectangles = g_array_new (FALSE, FALSE, sizeof (CoglFixed)); + priv->glyph_rectangles = g_array_new (FALSE, FALSE, sizeof (float)); } static void @@ -413,10 +413,10 @@ static void cogl_pango_renderer_draw_box (int x, int y, int width, int height) { - cogl_path_rectangle (COGL_FIXED_FROM_INT (x), - COGL_FIXED_FROM_INT (y - height), - COGL_FIXED_FROM_INT (width), - COGL_FIXED_FROM_INT (height)); + cogl_path_rectangle ((float)(x), + (float)(y - height), + (float)(width), + (float)(height)); cogl_path_stroke (); } @@ -424,17 +424,17 @@ static void cogl_pango_renderer_get_device_units (PangoRenderer *renderer, int xin, int yin, - CoglFixed *xout, - CoglFixed *yout) + float *xout, + float *yout) { const PangoMatrix *matrix; if ((matrix = pango_renderer_get_matrix (renderer))) { /* Convert user-space coords to device coords */ - *xout = COGL_FIXED_FROM_FLOAT ((xin * matrix->xx + yin * matrix->xy) + *xout = ((xin * matrix->xx + yin * matrix->xy) / PANGO_SCALE + matrix->x0); - *yout = COGL_FIXED_FROM_FLOAT ((yin * matrix->yy + xin * matrix->yx) + *yout = ((yin * matrix->yy + xin * matrix->yx) / PANGO_SCALE + matrix->y0); } else @@ -452,7 +452,7 @@ cogl_pango_renderer_draw_rectangle (PangoRenderer *renderer, int width, int height) { - CoglFixed x1, x2, y1, y2; + float x1, x2, y1, y2; cogl_pango_renderer_set_color_for_part (renderer, part); @@ -476,15 +476,15 @@ cogl_pango_renderer_draw_trapezoid (PangoRenderer *renderer, double x12, double x22) { - CoglFixed points[8]; + float points[8]; - points[0] = COGL_FIXED_FROM_FLOAT (x11); - points[1] = COGL_FIXED_FROM_FLOAT (y1); - points[2] = COGL_FIXED_FROM_FLOAT (x12); - points[3] = COGL_FIXED_FROM_FLOAT (y2); - points[4] = COGL_FIXED_FROM_FLOAT (x22); + points[0] = (x11); + points[1] = (y1); + points[2] = (x12); + points[3] = (y2); + points[4] = (x22); points[5] = points[3]; - points[6] = COGL_FIXED_FROM_FLOAT (x21); + points[6] = (x21); points[7] = points[1]; cogl_pango_renderer_set_color_for_part (renderer, part); @@ -510,7 +510,7 @@ cogl_pango_renderer_draw_glyphs (PangoRenderer *renderer, for (i = 0; i < glyphs->num_glyphs; i++) { PangoGlyphInfo *gi = glyphs->glyphs + i; - CoglFixed x, y; + float x, y; cogl_pango_renderer_get_device_units (renderer, xi + gi->geometry.x_offset, @@ -526,15 +526,15 @@ cogl_pango_renderer_draw_glyphs (PangoRenderer *renderer, if (font == NULL || (metrics = pango_font_get_metrics (font, NULL)) == NULL) { - cogl_pango_renderer_draw_box (COGL_FIXED_TO_INT (x), - COGL_FIXED_TO_INT (y), + cogl_pango_renderer_draw_box ( (x), + (y), PANGO_UNKNOWN_GLYPH_WIDTH, PANGO_UNKNOWN_GLYPH_HEIGHT); } else { - cogl_pango_renderer_draw_box (COGL_FIXED_TO_INT (x), - COGL_FIXED_TO_INT (y), + cogl_pango_renderer_draw_box ( (x), + (y), metrics->approximate_char_width / PANGO_SCALE, metrics->ascent / PANGO_SCALE); @@ -555,20 +555,20 @@ cogl_pango_renderer_draw_glyphs (PangoRenderer *renderer, { cogl_pango_renderer_glyphs_end (priv); - cogl_pango_renderer_draw_box (COGL_FIXED_TO_INT (x), - COGL_FIXED_TO_INT (y), + cogl_pango_renderer_draw_box ( (x), + (y), PANGO_UNKNOWN_GLYPH_WIDTH, PANGO_UNKNOWN_GLYPH_HEIGHT); } else { - CoglFixed width, height; + float width, height; - x += COGL_FIXED_FROM_INT (cache_value->draw_x); - y += COGL_FIXED_FROM_INT (cache_value->draw_y); + x += (float)(cache_value->draw_x); + y += (float)(cache_value->draw_y); - width = x + COGL_FIXED_FROM_INT (cache_value->draw_width); - height = y + COGL_FIXED_FROM_INT (cache_value->draw_height); + width = x + (float)(cache_value->draw_width); + height = y + (float)(cache_value->draw_height); cogl_pango_renderer_draw_glyph (priv, cache_value, x, y); } diff --git a/tests/conform/test-backface-culling.c b/tests/conform/test-backface-culling.c index 3b7948e..50c19fd 100644 --- a/tests/conform/test-backface-culling.c +++ b/tests/conform/test-backface-culling.c @@ -114,33 +114,33 @@ on_paint (ClutterActor *actor, TestState *state) the first */ for (i = 0; i < 2; i++) { - CoglFixed x1 = 0, x2, y1 = 0, y2 = COGL_FIXED_FROM_INT (TEXTURE_SIZE); + float x1 = 0, x2, y1 = 0, y2 = (float)(TEXTURE_SIZE); CoglTextureVertex verts[4]; memset (verts, 0, sizeof (verts)); /* Set the color to white so that all the textures will be drawn at their own color */ - cogl_set_source_color4x (COGL_FIXED_1, COGL_FIXED_1, - COGL_FIXED_1, COGL_FIXED_1); + cogl_set_source_color4x (1.0, 1.0, + 1.0, 1.0); - x2 = x1 + COGL_FIXED_FROM_INT (TEXTURE_SIZE); + x2 = x1 + (float)(TEXTURE_SIZE); /* Draw a front-facing texture */ cogl_texture_rectangle (state->texture, x1, y1, x2, y2, - 0, 0, COGL_FIXED_1, COGL_FIXED_1); + 0, 0, 1.0, 1.0); x1 = x2; - x2 = x1 + COGL_FIXED_FROM_INT (TEXTURE_SIZE); + x2 = x1 + (float)(TEXTURE_SIZE); /* Draw a back-facing texture */ cogl_texture_rectangle (state->texture, x2, y1, x1, y2, - 0, 0, COGL_FIXED_1, COGL_FIXED_1); + 0, 0, 1.0, 1.0); x1 = x2; - x2 = x1 + COGL_FIXED_FROM_INT (TEXTURE_SIZE); + x2 = x1 + (float)(TEXTURE_SIZE); /* Draw a front-facing texture polygon */ verts[0].x = x1; verts[0].y = y2; @@ -148,14 +148,14 @@ on_paint (ClutterActor *actor, TestState *state) verts[2].x = x2; verts[2].y = y1; verts[3].x = x1; verts[3].y = y1; verts[0].tx = 0; verts[0].ty = 0; - verts[1].tx = COGL_FIXED_1; verts[1].ty = 0; - verts[2].tx = COGL_FIXED_1; verts[2].ty = COGL_FIXED_1; - verts[3].tx = 0; verts[3].ty = COGL_FIXED_1; + verts[1].tx = 1.0; verts[1].ty = 0; + verts[2].tx = 1.0; verts[2].ty = 1.0; + verts[3].tx = 0; verts[3].ty = 1.0; cogl_texture_polygon (state->texture, 4, verts, FALSE); x1 = x2; - x2 = x1 + COGL_FIXED_FROM_INT (TEXTURE_SIZE); + x2 = x1 + (float)(TEXTURE_SIZE); /* Draw a back-facing texture polygon */ verts[0].x = x1; verts[0].y = y1; @@ -163,19 +163,19 @@ on_paint (ClutterActor *actor, TestState *state) verts[2].x = x2; verts[2].y = y2; verts[3].x = x1; verts[3].y = y2; verts[0].tx = 0; verts[0].ty = 0; - verts[1].tx = COGL_FIXED_1; verts[1].ty = 0; - verts[2].tx = COGL_FIXED_1; verts[2].ty = COGL_FIXED_1; - verts[3].tx = 0; verts[3].ty = COGL_FIXED_1; + verts[1].tx = 1.0; verts[1].ty = 0; + verts[2].tx = 1.0; verts[2].ty = 1.0; + verts[3].tx = 0; verts[3].ty = 1.0; cogl_texture_polygon (state->texture, 4, verts, FALSE); x1 = x2; - x2 = x1 + COGL_FIXED_FROM_INT (TEXTURE_SIZE); + x2 = x1 + (float)(TEXTURE_SIZE); /* Draw a regular rectangle (this should always show) */ - cogl_set_source_color4x (COGL_FIXED_1, 0, 0, COGL_FIXED_1); - cogl_rectangle (COGL_FIXED_TO_INT (x1), COGL_FIXED_TO_INT (y1), - COGL_FIXED_TO_INT (x2 - x1), COGL_FIXED_TO_INT (y2 - y1)); + cogl_set_source_color4x (1.0, 0, 0, 1.0); + cogl_rectangle ( (x1), (y1), + (x2 - x1), (y2 - y1)); /* The second time round draw beneath the first with backface culling disabled */ diff --git a/tests/interactive/test-cogl-tex-tile.c b/tests/interactive/test-cogl-tex-tile.c index fe7138a..5063dff 100644 --- a/tests/interactive/test-cogl-tex-tile.c +++ b/tests/interactive/test-cogl-tex-tile.c @@ -94,9 +94,9 @@ test_coglbox_paint(ClutterActor *self) cos_frame = clutter_cosi (CLUTTER_ANGLE_FROM_DEG (priv->frame)); pingpong_frame = (priv->frame <= 180 ? priv->frame : 360 - priv->frame); - frac_frame = COGL_FIXED_DIV (CLUTTER_INT_TO_FIXED (pingpong_frame), + frac_frame = (CLUTTER_INT_TO_FIXED (pingpong_frame) / CLUTTER_INT_TO_FIXED (180)); - frac_frame += (COGL_FIXED_1 >> 1); + frac_frame += (1.0 >> 1); frac_frame <<= 1; for (t=0; t<4; t+=2) @@ -104,8 +104,8 @@ test_coglbox_paint(ClutterActor *self) texcoords[t] += cos_frame; texcoords[t+1] += sin_frame; - texcoords[t] = COGL_FIXED_MUL (texcoords[t], frac_frame); - texcoords[t+1] = COGL_FIXED_MUL (texcoords[t+1], frac_frame); + texcoords[t] = (texcoords[t] * frac_frame); + texcoords[t+1] = (texcoords[t+1] * frac_frame); } priv = TEST_COGLBOX_GET_PRIVATE (self); diff --git a/tests/interactive/test-text-field.c b/tests/interactive/test-text-field.c index ca58273..3087a7f 100644 --- a/tests/interactive/test-text-field.c +++ b/tests/interactive/test-text-field.c @@ -19,7 +19,7 @@ on_entry_paint (ClutterActor *actor, cogl_path_round_rectangle (0, 0, CLUTTER_UNITS_TO_FIXED (width), CLUTTER_UNITS_TO_FIXED (height), - COGL_FIXED_FROM_INT (4), + (float)(4), COGL_ANGLE_FROM_DEG (1.0)); cogl_path_stroke (); }