From a2cf7e4a19fec5edf017aef0bba972b59c62b1cf Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Tue, 20 Jan 2009 16:20:54 +0000 Subject: [PATCH] [Automatic fixed-to-float.sh change] Applies a number fixed to float patches To deal with all the corner cases that couldn't be scripted a number of patches were written for the remaining 10% of the effort. Note: again no API changes were made in Clutter, only in Cogl. --- clutter/clutter-actor.c | 53 ++++++------ clutter/clutter-alpha.c | 139 ++++++++++++++++--------------- clutter/clutter-alpha.h | 2 +- clutter/clutter-behaviour-ellipse.c | 144 +++++++++++++++------------------ clutter/clutter-bezier.c | 2 +- clutter/clutter-fixed.c | 4 +- clutter/clutter-path.c | 4 +- clutter/clutter-texture.c | 2 +- clutter/cogl/cogl-color.h | 10 +-- clutter/cogl/cogl-fixed.h | 12 +++ clutter/cogl/cogl-path.h | 22 +---- clutter/cogl/cogl.h.in | 50 +++--------- clutter/cogl/common/cogl-color.c | 6 +- clutter/cogl/common/cogl-fixed.c | 6 ++ clutter/cogl/common/cogl-primitives.c | 33 +++----- clutter/cogl/gl/cogl-primitives.c | 63 +++++---------- clutter/cogl/gl/cogl-texture.c | 5 +- clutter/cogl/gl/cogl.c | 113 +++++--------------------- clutter/cogl/gles/cogl-gles2-wrapper.c | 45 ++--------- clutter/cogl/gles/cogl-gles2-wrapper.h | 31 ++++--- clutter/cogl/gles/cogl-primitives.c | 92 +++++++-------------- clutter/cogl/gles/cogl-texture.c | 5 +- clutter/cogl/gles/cogl.c | 70 ++++++---------- clutter/pango/cogl-pango-render.c | 8 +- doc/reference/cogl/cogl-sections.txt | 4 +- tests/conform/test-backface-culling.c | 4 +- tests/interactive/test-cogl-tex-tile.c | 10 +-- 27 files changed, 355 insertions(+), 584 deletions(-) diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index 1e481cd..e0903fe 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -806,7 +806,7 @@ static inline void mtx_transform (const ClutterFixed m[], fixed_vertex_t *vertex) { - ClutterFixed _x, _y, _z, _w; + float _x, _y, _z, _w; _x = vertex->x; _y = vertex->y; @@ -846,8 +846,11 @@ 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) (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_X(x,w,v1,v2) \ + (CLUTTER_FIXED_MUL (((CLUTTER_FIXED_DIV ((x), (w)) + 1.0) / 2), (v1)) + (v2)) +#define MTX_GL_SCALE_Y(y,w,v1,v2) \ + ((v1) - CLUTTER_FIXED_MUL (((CLUTTER_FIXED_DIV ((y), (w)) + 1.0) / 2), \ + (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 @@ -1345,8 +1348,8 @@ _clutter_actor_apply_modelview_transform (ClutterActor *self) gboolean is_stage = CLUTTER_IS_STAGE (self); if (!is_stage) - cogl_translatex (CLUTTER_UNITS_TO_FIXED (priv->allocation.x1), - CLUTTER_UNITS_TO_FIXED (priv->allocation.y1), + cogl_translate (CLUTTER_UNITS_TO_FLOAT (priv->allocation.x1), + CLUTTER_UNITS_TO_FLOAT (priv->allocation.y1), 0); /* @@ -1360,50 +1363,50 @@ _clutter_actor_apply_modelview_transform (ClutterActor *self) if (priv->rzang) { - cogl_translatex (CLUTTER_UNITS_TO_FIXED (priv->rzx), - CLUTTER_UNITS_TO_FIXED (priv->rzy), + cogl_translate (CLUTTER_UNITS_TO_FLOAT (priv->rzx), + CLUTTER_UNITS_TO_FLOAT (priv->rzy), 0); - cogl_rotatex (priv->rzang, 0, 0, 1.0); + cogl_rotate (priv->rzang, 0, 0, 1.0); - cogl_translatex (CLUTTER_UNITS_TO_FIXED (-priv->rzx), - CLUTTER_UNITS_TO_FIXED (-priv->rzy), + cogl_translate (CLUTTER_UNITS_TO_FLOAT (-priv->rzx), + CLUTTER_UNITS_TO_FLOAT (-priv->rzy), 0); } if (priv->ryang) { - cogl_translatex (CLUTTER_UNITS_TO_FIXED (priv->ryx), + cogl_translate (CLUTTER_UNITS_TO_FLOAT (priv->ryx), 0, - CLUTTER_UNITS_TO_FIXED (priv->z + priv->ryz)); + CLUTTER_UNITS_TO_FLOAT (priv->z + priv->ryz)); - cogl_rotatex (priv->ryang, 0, 1.0, 0); + cogl_rotate (priv->ryang, 0, 1.0, 0); - cogl_translatex (CLUTTER_UNITS_TO_FIXED (-priv->ryx), + cogl_translate (CLUTTER_UNITS_TO_FLOAT (-priv->ryx), 0, - CLUTTER_UNITS_TO_FIXED (-(priv->z + priv->ryz))); + CLUTTER_UNITS_TO_FLOAT (-(priv->z + priv->ryz))); } if (priv->rxang) { - cogl_translatex (0, - CLUTTER_UNITS_TO_FIXED (priv->rxy), - CLUTTER_UNITS_TO_FIXED (priv->z + priv->rxz)); + cogl_translate (0, + CLUTTER_UNITS_TO_FLOAT (priv->rxy), + CLUTTER_UNITS_TO_FLOAT (priv->z + priv->rxz)); - cogl_rotatex (priv->rxang, 1.0, 0, 0); + cogl_rotate (priv->rxang, 1.0, 0, 0); - cogl_translatex (0, - CLUTTER_UNITS_TO_FIXED (-priv->rxy), - CLUTTER_UNITS_TO_FIXED (-(priv->z + priv->rxz))); + cogl_translate (0, + CLUTTER_UNITS_TO_FLOAT (-priv->rxy), + CLUTTER_UNITS_TO_FLOAT (-(priv->z + priv->rxz))); } if (!is_stage && (priv->anchor_x || priv->anchor_y)) - cogl_translatex (CLUTTER_UNITS_TO_FIXED (-priv->anchor_x), - CLUTTER_UNITS_TO_FIXED (-priv->anchor_y), + cogl_translate (CLUTTER_UNITS_TO_FLOAT (-priv->anchor_x), + CLUTTER_UNITS_TO_FLOAT (-priv->anchor_y), 0); if (priv->z) - cogl_translatex (0, 0, priv->z); + cogl_translate (0, 0, priv->z); } /* Recursively applies the transforms associated with this actor and diff --git a/clutter/clutter-alpha.c b/clutter/clutter-alpha.c index 60ef0d3..dda0f6c 100644 --- a/clutter/clutter-alpha.c +++ b/clutter/clutter-alpha.c @@ -697,6 +697,11 @@ clutter_ramp_func (ClutterAlpha *alpha, } } +#if 0 +/* + * The following three functions are left in place for reference + * purposes. + */ static guint32 sincx1024_func (ClutterAlpha *alpha, float angle, @@ -716,7 +721,7 @@ sincx1024_func (ClutterAlpha *alpha, x -= (512 * 512 / angle); - sine = ((sinf (x * (G_PI/180.0)) + offset) / 2) + sine = ((cogl_angle_sin (x) + offset) / 2) * CLUTTER_ALPHA_MAX_ALPHA; sine = sine >> COGL_FIXED_Q; @@ -724,11 +729,6 @@ sincx1024_func (ClutterAlpha *alpha, return sine; } -#if 0 -/* - * The following two functions are left in place for reference - * purposes. - */ static guint32 sincx_func (ClutterAlpha *alpha, ClutterFixed angle, @@ -747,7 +747,7 @@ sincx_func (ClutterAlpha *alpha, x = CLUTTER_FIXED_MUL (x, CFX_PI) - CLUTTER_FIXED_DIV (CFX_PI, angle); - sine = (sinf (x) + offset) / 2; + sine = (cogl_angle_sin (x) + offset) / 2; CLUTTER_NOTE (ALPHA, "sine: %2f\n", CLUTTER_FIXED_TO_DOUBLE (sine)); @@ -806,9 +806,28 @@ guint32 clutter_sine_func (ClutterAlpha *alpha, gpointer dummy) { -#if 0 +#if 1 + ClutterTimeline *timeline; + gint current_frame_num, n_frames; + float radians, sine; + + timeline = clutter_alpha_get_timeline (alpha); + + current_frame_num = clutter_timeline_get_current_frame (timeline); + n_frames = clutter_timeline_get_n_frames (timeline); + + radians = ((float)current_frame_num / n_frames) * (2.0 * G_PI); + sine = sinf (radians); + + /* shift from range [-1, 1] -> [0, 1] */ + sine = (sine + 1.0) / 2.0; + + CLUTTER_NOTE (ALPHA, "sine: %2f\n", sine); + + return sine * CLUTTER_ALPHA_MAX_ALPHA; +#elif 0 return sinc_func (alpha, 2.0, 1.0); -#else +#elif 0 /* 2.0 above represents full circle */ return sincx1024_func (alpha, 1024, 1.0); #endif @@ -842,18 +861,17 @@ clutter_sine_inc_func (ClutterAlpha *alpha, ClutterTimeline * timeline; gint frame; gint n_frames; - float x; - ClutterFixed sine; + float radians; + float sine; timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - x = 256 * frame / n_frames; - - sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; + radians = ((float)frame / n_frames) * (G_PI / 2); + sine = sinf (radians); - return ((guint32) sine) >> COGL_FIXED_Q; + return (guint32) (sine * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -884,18 +902,17 @@ clutter_sine_dec_func (ClutterAlpha *alpha, ClutterTimeline * timeline; gint frame; gint n_frames; - float x; - ClutterFixed sine; + float radians; + float sine; timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - x = 256 * frame / n_frames + 256; - - sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; + radians = ((float)frame / n_frames) * (G_PI / 2); + sine = sinf (radians + (G_PI / 2)); - return ((guint32) sine) >> COGL_FIXED_Q; + return (guint32) (sine * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -926,18 +943,17 @@ clutter_sine_half_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - float x; - ClutterFixed sine; + float radians; + float sine; timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - x = 512 * frame / n_frames; + radians = ((float)frame / n_frames) * G_PI; + sine = sinf (radians); - sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; - - return ((guint32) sine) >> COGL_FIXED_Q; + return (guint32) (sine * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -962,19 +978,20 @@ clutter_sine_in_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - float x; - ClutterFixed sine; + float radians; + float sine; timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - /* XXX- if we use 768 we overflow */ - x = 256 * frame / n_frames + 767; + radians = ((float)frame / n_frames) * (G_PI / 2); + sine = sinf (radians - (G_PI / 2)); - sine = (sinf (x * (G_PI/180.0)) + 1) * CLUTTER_ALPHA_MAX_ALPHA; + /* shift from range [-1, 0] -> [0, 1] */ + sine = sine + 1.0; - return ((guint32) sine) >> COGL_FIXED_Q; + return (guint32) (sine * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -998,18 +1015,17 @@ clutter_sine_out_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - float x; - ClutterFixed sine; + float radians; + float sine; timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - x = 256 * frame / n_frames; - - sine = sinf (x * (G_PI/180.0)) * CLUTTER_ALPHA_MAX_ALPHA; + radians = ((float)frame / n_frames) * (G_PI / 2); + sine = sinf (radians); - return ((guint32) sine) >> COGL_FIXED_Q; + return (guint32) (sine * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -1034,18 +1050,20 @@ clutter_sine_in_out_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - float x; - ClutterFixed sine; + float radians; + float sine; timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - x = -256 * frame / n_frames + 256; + radians = ((float)frame / n_frames) * G_PI; + sine = sinf (radians - (G_PI / 2)); - sine = (sinf (x * (G_PI/180.0)) + 1) / 2 * CLUTTER_ALPHA_MAX_ALPHA; + /* shift from range [-1, 1] -> [0, 1] */ + sine = (sine + 1.0) / 2.0; - return ((guint32) sine) >> COGL_FIXED_Q; + return (guint32) (sine * CLUTTER_ALPHA_MAX_ALPHA); } /** @@ -1113,30 +1131,23 @@ clutter_smoothstep_inc_func (ClutterAlpha *alpha, ClutterTimeline *timeline; gint frame; gint n_frames; - guint32 r; - guint32 x; + float r; + float x; /* * The smoothstep function uses f(x) = -2x^3 + 3x^2 where x is from <0,1>, - * and precission is critical -- we use 8.24 fixed format for this operation. - * The earlier operations involve division, which we cannot do in 8.24 for - * numbers in <0,1> we use ClutterFixed. + * and precission is critical. */ timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); n_frames = clutter_timeline_get_n_frames (timeline); - /* - * Convert x to 8.24 for next step. - */ - x = CLUTTER_FIXED_DIV (frame, n_frames) << 8; + x = (float)frame / n_frames; /* * f(x) = -2x^3 + 3x^2 - * - * Convert result to ClutterFixed to avoid overflow in next step. */ - r = ((x >> 12) * (x >> 12) * 3 - (x >> 15) * (x >> 16) * (x >> 16)) >> 8; + r = -2 * x * x * x + 3 * x * x; return (r * CLUTTER_ALPHA_MAX_ALPHA); } @@ -1204,9 +1215,9 @@ clutter_exp_inc_func (ClutterAlpha *alpha, * * (2^x_alpha_max) - 1 == CLUTTER_ALPHA_MAX_ALPHA */ -#if CLUTTER_ALPHA_MAX_ALPHA != 0xffff -#error Adjust x_alpha_max to match CLUTTER_ALPHA_MAX_ALPHA -#endif + /* XXX: If this fails: + * Adjust x_alpha_max to match CLUTTER_ALPHA_MAX_ALPHA */ + g_assert (CLUTTER_ALPHA_MAX_ALPHA == 65535.0); timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); @@ -1214,7 +1225,7 @@ clutter_exp_inc_func (ClutterAlpha *alpha, x = x_alpha_max * frame / n_frames; - result = CLAMP (pow2f (x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); + result = CLAMP (powf (2, x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); return result; } @@ -1255,9 +1266,9 @@ clutter_exp_dec_func (ClutterAlpha *alpha, * * (2^x_alpha_max) - 1 == CLUTTER_ALPHA_MAX_ALPHA */ -#if CLUTTER_ALPHA_MAX_ALPHA != 0xffff -#error Adjust x_alpha_max to match CLUTTER_ALPHA_MAX_ALPHA -#endif + /* XXX: If this fails: + * Adjust x_alpha_max to match CLUTTER_ALPHA_MAX_ALPHA */ + g_assert (CLUTTER_ALPHA_MAX_ALPHA == 65535.0); timeline = clutter_alpha_get_timeline (alpha); frame = clutter_timeline_get_current_frame (timeline); @@ -1265,7 +1276,7 @@ clutter_exp_dec_func (ClutterAlpha *alpha, x = (x_alpha_max * (n_frames - frame)) / n_frames; - result = CLAMP (pow2f (x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); + result = CLAMP (powf (2, x) - 1, 0, CLUTTER_ALPHA_MAX_ALPHA); return result; } diff --git a/clutter/clutter-alpha.h b/clutter/clutter-alpha.h index eba9e3f..e409d77 100644 --- a/clutter/clutter-alpha.h +++ b/clutter/clutter-alpha.h @@ -106,7 +106,7 @@ struct _ClutterAlphaClass * * Since: 0.2 */ -#define CLUTTER_ALPHA_MAX_ALPHA (0xffff) +#define CLUTTER_ALPHA_MAX_ALPHA (65535.0f) GType clutter_alpha_get_type (void) G_GNUC_CONST; diff --git a/clutter/clutter-behaviour-ellipse.c b/clutter/clutter-behaviour-ellipse.c index 162a949..4212b95 100644 --- a/clutter/clutter-behaviour-ellipse.c +++ b/clutter/clutter-behaviour-ellipse.c @@ -190,17 +190,13 @@ actor_apply_knot_foreach (ClutterBehaviour *behave, static inline float clamp_angle (float a) { - float a1, a2; gint rounds; - /* Need to add the 256 offset here, since the user space 0 maps to our - * -256 - */ - rounds = (a + 256) / 1024; - a1 = rounds * 1024; - a2 = a - a1; + rounds = a / 360; + if (a < 0) + rounds--; - return a2; + return a - 360 * rounds; } static void @@ -218,11 +214,11 @@ clutter_behaviour_ellipse_alpha_notify (ClutterBehaviour *behave, if (priv->direction == CLUTTER_ROTATE_CW && start >= end) { - end += 1024; + end += 360; } else if (priv->direction == CLUTTER_ROTATE_CCW && start <= end) { - end -= 1024; + end -= 360; } angle = (end - start) * alpha / CLUTTER_ALPHA_MAX_ALPHA + start; @@ -247,30 +243,25 @@ clutter_behaviour_ellipse_set_property (GObject *gobject, switch (prop_id) { case PROP_ANGLE_START: - priv->angle_start = - COGL_ANGLE_FROM_DEG (g_value_get_double (value)) - 256; + priv->angle_start = g_value_get_double (value); break; case PROP_ANGLE_END: - priv->angle_end = - COGL_ANGLE_FROM_DEG (g_value_get_double (value)) - 256; + priv->angle_end = g_value_get_double (value); break; case PROP_ANGLE_TILT_X: - priv->angle_tilt_x = - COGL_ANGLE_FROM_DEG (g_value_get_double (value)); + priv->angle_tilt_x = g_value_get_double (value); break; case PROP_ANGLE_TILT_Y: - priv->angle_tilt_y = - COGL_ANGLE_FROM_DEG (g_value_get_double (value)); + priv->angle_tilt_y = g_value_get_double (value); break; case PROP_ANGLE_TILT_Z: - priv->angle_tilt_z = - COGL_ANGLE_FROM_DEG (g_value_get_double (value)); + priv->angle_tilt_z = g_value_get_double (value); break; case PROP_WIDTH: - priv->a = g_value_get_int (value) >> 1; + priv->a = g_value_get_int (value) / 2; break; case PROP_HEIGHT: - priv->b = g_value_get_int (value) >> 1; + priv->b = g_value_get_int (value) / 2; break; case PROP_CENTER: { @@ -301,30 +292,25 @@ clutter_behaviour_ellipse_get_property (GObject *gobject, switch (prop_id) { case PROP_ANGLE_START: - g_value_set_double (value, - COGL_ANGLE_TO_DEG (priv->angle_start + 256)); + g_value_set_double (value, priv->angle_start); break; case PROP_ANGLE_END: - g_value_set_double (value, - COGL_ANGLE_TO_DEG (priv->angle_end + 256)); + g_value_set_double (value, priv->angle_end); break; case PROP_ANGLE_TILT_X: - g_value_set_double (value, - COGL_ANGLE_TO_DEG (priv->angle_tilt_x)); + g_value_set_double (value, priv->angle_tilt_x); break; case PROP_ANGLE_TILT_Y: - g_value_set_double (value, - COGL_ANGLE_TO_DEG (priv->angle_tilt_y)); + g_value_set_double (value, priv->angle_tilt_y); break; case PROP_ANGLE_TILT_Z: - g_value_set_double (value, - COGL_ANGLE_TO_DEG (priv->angle_tilt_z)); + g_value_set_double (value, priv->angle_tilt_z); break; case PROP_WIDTH: - g_value_set_int (value, (priv->a << 1)); + g_value_set_int (value, (priv->a * 2)); break; case PROP_HEIGHT: - g_value_set_int (value, (priv->b << 1)); + g_value_set_int (value, (priv->b * 2)); break; case PROP_CENTER: g_value_set_boxed (value, &priv->center); @@ -513,12 +499,8 @@ clutter_behaviour_ellipse_init (ClutterBehaviourEllipse * self) priv->direction = CLUTTER_ROTATE_CW; - /* The inital values have to reflect the 90 degree offset between the normal - * mathematical space and the clutter clock-based space; the default end - * value of 360 is clamped to 0. - */ - priv->angle_start = -256; - priv->angle_end = -256; + priv->angle_start = 0; + priv->angle_end = 0; } /** @@ -611,8 +593,8 @@ clutter_behaviour_ellipse_newx (ClutterAlpha * alpha, "width", width, "height", height, "direction", direction, - "angle-start", COGL_ANGLE_FROM_DEGX (start), - "angle-end", COGL_ANGLE_FROM_DEGX (end), + "angle-start", (double)CLUTTER_FIXED_TO_FLOAT (start), + "angle-end", (double)CLUTTER_FIXED_TO_FLOAT (end), NULL); } @@ -695,9 +677,9 @@ clutter_behaviour_ellipse_set_width (ClutterBehaviourEllipse * self, priv = self->priv; - if (priv->a != width >> 1) + if (priv->a != width / 2) { - priv->a = width >> 1; + priv->a = width / 2; g_object_notify (G_OBJECT (self), "width"); } @@ -718,7 +700,7 @@ clutter_behaviour_ellipse_get_width (ClutterBehaviourEllipse *self) { g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0); - return self->priv->a << 1; + return self->priv->a * 2; } /** @@ -740,9 +722,9 @@ clutter_behaviour_ellipse_set_height (ClutterBehaviourEllipse *self, priv = self->priv; - if (priv->b != height >> 1) + if (priv->b != height / 2) { - priv->b = height >> 1; + priv->b = height / 2; g_object_notify (G_OBJECT (self), "height"); } @@ -763,7 +745,7 @@ clutter_behaviour_ellipse_get_height (ClutterBehaviourEllipse *self) { g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0); - return self->priv->b << 1; + return self->priv->b * 2; } /** @@ -780,10 +762,11 @@ void clutter_behaviour_ellipse_set_angle_start (ClutterBehaviourEllipse *self, gdouble angle_start) { + ClutterFixed new_angle = CLUTTER_FLOAT_TO_FIXED (angle_start); + g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - clutter_behaviour_ellipse_set_angle_startx (self, - CLUTTER_FLOAT_TO_FIXED (angle_start)); + clutter_behaviour_ellipse_set_angle_startx (self, new_angle); } /** @@ -805,7 +788,7 @@ clutter_behaviour_ellipse_set_angle_startx (ClutterBehaviourEllipse *self, float new_angle; g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - new_angle = clamp_angle (COGL_ANGLE_FROM_DEGX (angle_start) - 256); + new_angle = clamp_angle (CLUTTER_FIXED_TO_FLOAT (angle_start)); priv = self->priv; if (priv->angle_start != new_angle) @@ -830,7 +813,7 @@ clutter_behaviour_ellipse_get_angle_start (ClutterBehaviourEllipse *self) { g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0.0); - return COGL_ANGLE_TO_DEG (self->priv->angle_start + 256); + return (double)self->priv->angle_start; } /** @@ -848,7 +831,7 @@ clutter_behaviour_ellipse_get_angle_startx (ClutterBehaviourEllipse *self) { g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0); - return COGL_ANGLE_TO_DEGX (self->priv->angle_start); + return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_start); } /** @@ -865,10 +848,11 @@ void clutter_behaviour_ellipse_set_angle_end (ClutterBehaviourEllipse *self, gdouble angle_end) { + ClutterFixed new_angle = CLUTTER_FLOAT_TO_FIXED (angle_end); + g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - clutter_behaviour_ellipse_set_angle_endx (self, - CLUTTER_FLOAT_TO_FIXED (angle_end)); + clutter_behaviour_ellipse_set_angle_endx (self, new_angle); } /** @@ -891,7 +875,7 @@ clutter_behaviour_ellipse_set_angle_endx (ClutterBehaviourEllipse *self, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - new_angle = clamp_angle (COGL_ANGLE_FROM_DEGX (angle_end) - 256); + new_angle = clamp_angle (CLUTTER_FIXED_TO_FLOAT (angle_end)); priv = self->priv; @@ -918,7 +902,7 @@ clutter_behaviour_ellipse_get_angle_end (ClutterBehaviourEllipse *self) { g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0.0); - return COGL_ANGLE_TO_DEG (self->priv->angle_end + 256); + return self->priv->angle_end; } /** @@ -936,7 +920,7 @@ clutter_behaviour_ellipse_get_angle_endx (ClutterBehaviourEllipse *self) { g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self), 0); - return COGL_ANGLE_TO_DEGX (self->priv->angle_end); + return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_end); } /** @@ -955,11 +939,11 @@ clutter_behaviour_ellipse_set_angle_tilt (ClutterBehaviourEllipse *self, ClutterRotateAxis axis, gdouble angle_tilt) { + ClutterFixed new_angle = CLUTTER_FLOAT_TO_FIXED (angle_tilt); + g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - clutter_behaviour_ellipse_set_angle_tiltx (self, - axis, - CLUTTER_FLOAT_TO_FIXED (angle_tilt)); + clutter_behaviour_ellipse_set_angle_tiltx (self, axis, new_angle); } /** @@ -983,7 +967,7 @@ clutter_behaviour_ellipse_set_angle_tiltx (ClutterBehaviourEllipse *self, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - new_angle = COGL_ANGLE_FROM_DEGX (angle_tilt); + new_angle = CLUTTER_FIXED_TO_FLOAT (angle_tilt); priv = self->priv; @@ -1038,11 +1022,11 @@ clutter_behaviour_ellipse_get_angle_tilt (ClutterBehaviourEllipse *self, switch (axis) { case CLUTTER_X_AXIS: - return COGL_ANGLE_TO_DEG (self->priv->angle_tilt_x); + return self->priv->angle_tilt_x; case CLUTTER_Y_AXIS: - return COGL_ANGLE_TO_DEG (self->priv->angle_tilt_y); + return self->priv->angle_tilt_y; case CLUTTER_Z_AXIS: - return COGL_ANGLE_TO_DEG (self->priv->angle_tilt_z); + return self->priv->angle_tilt_z; } return 0; @@ -1068,11 +1052,11 @@ clutter_behaviour_ellipse_get_angle_tiltx (ClutterBehaviourEllipse *self, switch (axis) { case CLUTTER_X_AXIS: - return COGL_ANGLE_TO_DEGX (self->priv->angle_tilt_x); + return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_tilt_x); case CLUTTER_Y_AXIS: - return COGL_ANGLE_TO_DEGX (self->priv->angle_tilt_y); + return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_tilt_y); case CLUTTER_Z_AXIS: - return COGL_ANGLE_TO_DEGX (self->priv->angle_tilt_z); + return CLUTTER_FLOAT_TO_FIXED (self->priv->angle_tilt_z); } return 0; @@ -1100,9 +1084,9 @@ clutter_behaviour_ellipse_set_tilt (ClutterBehaviourEllipse *self, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - new_angle_x = COGL_ANGLE_FROM_DEG (angle_tilt_x); - new_angle_y = COGL_ANGLE_FROM_DEG (angle_tilt_y); - new_angle_z = COGL_ANGLE_FROM_DEG (angle_tilt_z); + new_angle_x = (float)angle_tilt_x; + new_angle_y = (float)angle_tilt_y; + new_angle_z = (float)angle_tilt_z; priv = self->priv; @@ -1154,9 +1138,9 @@ clutter_behaviour_ellipse_set_tiltx (ClutterBehaviourEllipse *self, g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self)); - new_angle_x = COGL_ANGLE_FROM_DEGX (angle_tilt_x); - new_angle_y = COGL_ANGLE_FROM_DEGX (angle_tilt_y); - new_angle_z = COGL_ANGLE_FROM_DEGX (angle_tilt_z); + new_angle_x = CLUTTER_FIXED_TO_FLOAT (angle_tilt_x); + new_angle_y = CLUTTER_FIXED_TO_FLOAT (angle_tilt_y); + new_angle_z = CLUTTER_FIXED_TO_FLOAT (angle_tilt_z); priv = self->priv; @@ -1210,13 +1194,13 @@ clutter_behaviour_ellipse_get_tilt (ClutterBehaviourEllipse *self, priv = self->priv; if (angle_tilt_x) - *angle_tilt_x = COGL_ANGLE_TO_DEG (priv->angle_tilt_x); + *angle_tilt_x = priv->angle_tilt_x; if (angle_tilt_y) - *angle_tilt_y = COGL_ANGLE_TO_DEG (priv->angle_tilt_y); + *angle_tilt_y = priv->angle_tilt_y; if (angle_tilt_z) - *angle_tilt_z = COGL_ANGLE_TO_DEG (priv->angle_tilt_z); + *angle_tilt_z = priv->angle_tilt_z; } /** @@ -1246,13 +1230,13 @@ clutter_behaviour_ellipse_get_tiltx (ClutterBehaviourEllipse *self, priv = self->priv; if (angle_tilt_x) - *angle_tilt_x = COGL_ANGLE_TO_DEGX (priv->angle_tilt_x); + *angle_tilt_x = priv->angle_tilt_x; if (angle_tilt_y) - *angle_tilt_y = COGL_ANGLE_TO_DEGX (priv->angle_tilt_y); + *angle_tilt_y = priv->angle_tilt_y; if (angle_tilt_z) - *angle_tilt_z = COGL_ANGLE_TO_DEGX (priv->angle_tilt_z); + *angle_tilt_z = priv->angle_tilt_z; } /** diff --git a/clutter/clutter-bezier.c b/clutter/clutter-bezier.c index 6a47626..66c4ddf 100644 --- a/clutter/clutter-bezier.c +++ b/clutter/clutter-bezier.c @@ -252,7 +252,7 @@ _clutter_bezier_init (ClutterBezier *b, int x = _clutter_bezier_t2x (b, t); int y = _clutter_bezier_t2y (b, t); - guint l = clutter_sqrti ((y - yp)*(y - yp) + (x - xp)*(x - xp)); + guint l = cogl_sqrti ((y - yp)*(y - yp) + (x - xp)*(x - xp)); l += length[i-1]; diff --git a/clutter/clutter-fixed.c b/clutter/clutter-fixed.c index 3027a75..315fe32 100644 --- a/clutter/clutter-fixed.c +++ b/clutter/clutter-fixed.c @@ -251,8 +251,8 @@ param_fixed_init (GParamSpec *pspec) { ClutterParamSpecFixed *fspec = CLUTTER_PARAM_SPEC_FIXED (pspec); - fspec->minimum = COGL_FIXED_MIN; - fspec->maximum = COGL_FIXED_MAX; + fspec->minimum = CLUTTER_MAXFIXED; + fspec->maximum = CLUTTER_MINFIXED; fspec->default_value = 0; } diff --git a/clutter/clutter-path.c b/clutter/clutter-path.c index 6f93402..c459cdf 100644 --- a/clutter/clutter-path.c +++ b/clutter/clutter-path.c @@ -1217,11 +1217,11 @@ clutter_path_node_distance (const ClutterKnot *start, * If we are using limited precision sqrti implementation, fallback on * clib sqrt if the precission would be less than 10% */ -#if INT_MAX > CLUTTER_SQRTI_ARG_10_PERCENT +#if INT_MAX > COGL_SQRTI_ARG_10_PERCENT if (t <= COGL_SQRTI_ARG_10_PERCENT) return cogl_sqrti (t); else - return COGL_FLOAT_TO_INT (sqrt(t)); + return COGL_FLOAT_TO_INT (sqrtf(t)); #else return cogl_sqrti (t); #endif diff --git a/clutter/clutter-texture.c b/clutter/clutter-texture.c index b0b46e4..8a306e9 100644 --- a/clutter/clutter-texture.c +++ b/clutter/clutter-texture.c @@ -474,7 +474,7 @@ clutter_texture_set_fbo_projection (ClutterActor *self) /* Set up a projection matrix so that the actor will be projected as if it was drawn at its original location */ - tan_angle = tanf (COGL_ANGLE_FROM_DEGX (perspective.fovy / 2 * (G_PI/180.0))); + tan_angle = tanf ((perspective.fovy / 2) * (G_PI/180.0)); near_size = CLUTTER_FIXED_MUL (perspective.z_near, tan_angle); cogl_frustum (CLUTTER_FIXED_MUL (tx_min, near_size), diff --git a/clutter/cogl/cogl-color.h b/clutter/cogl/cogl-color.h index 6cdf52b..05650d3 100644 --- a/clutter/cogl/cogl-color.h +++ b/clutter/cogl/cogl-color.h @@ -68,7 +68,7 @@ void cogl_color_set_from_4d (CoglColor *dest, gdouble alpha); /** - * cogl_color_set_from_4x: + * cogl_color_set_from_4f: * @dest: return location for a #CoglColor * @red: value of the red channel, between 0 and %1.0 * @green: value of the green channel, between 0 and %1.0 @@ -79,7 +79,7 @@ void cogl_color_set_from_4d (CoglColor *dest, * * Since: 1.0 */ -void cogl_color_set_from_4x (CoglColor *dest, +void cogl_color_set_from_4f (CoglColor *dest, float red, float green, float blue, @@ -248,7 +248,7 @@ float cogl_color_get_alpha (const CoglColor *color); * Sets the source color using normalized values for each component. * This color will be used for any subsequent drawing operation. * - * See also cogl_set_source_color4ub() and cogl_set_source_color4x() + * See also cogl_set_source_color4ub() and cogl_set_source_color4f() * if you already have the color components. * * Since: 1.0 @@ -276,7 +276,7 @@ void cogl_set_source_color4ub (guint8 red, guint8 alpha); /** - * cogl_set_source_color4x: + * cogl_set_source_color4f: * @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 @@ -291,7 +291,7 @@ void cogl_set_source_color4ub (guint8 red, * * Since: 1.0 */ -void cogl_set_source_color4x (float red, +void cogl_set_source_color4f (float red, float green, float blue, float alpha); diff --git a/clutter/cogl/cogl-fixed.h b/clutter/cogl/cogl-fixed.h index a521074..8d7c9e9 100644 --- a/clutter/cogl/cogl-fixed.h +++ b/clutter/cogl/cogl-fixed.h @@ -456,6 +456,18 @@ G_BEGIN_DECLS CoglFixed cogl_fixed_sin (CoglFixed angle); /** + * cogl_fixed_tan: + * @angle: a #CoglFixed number + * + * Computes the tangent of @angle. + * + * Return value: the tangent of the passed angle, in fixed point notation + * + * Since: 1.0 + */ +CoglFixed cogl_fixed_tan (CoglFixed angle); + +/** * cogl_fixed_cos: * @angle: a #CoglFixed number * diff --git a/clutter/cogl/cogl-path.h b/clutter/cogl/cogl-path.h index 0d29829..aa37864 100644 --- a/clutter/cogl/cogl-path.h +++ b/clutter/cogl/cogl-path.h @@ -60,24 +60,10 @@ G_BEGIN_DECLS * Fills a rectangle at the given coordinates with the current * drawing color in a highly optimizied fashion. **/ -void cogl_rectangle (gint x, - gint y, - guint width, - guint height); - -/** - * cogl_rectanglex: - * @x: X coordinate of the top-left corner - * @y: Y coordinate of the top-left corner - * @width: Width of the rectangle - * @height: Height of the rectangle - * - * A fixed-point version of cogl_fast_fill_rectangle. - **/ -void cogl_rectanglex (float x, - float y, - float width, - float height); +void cogl_rectangle (float x, + float y, + float width, + float height); /** * cogl_path_fill: diff --git a/clutter/cogl/cogl.h.in b/clutter/cogl/cogl.h.in index cc26f88..f8d5745 100644 --- a/clutter/cogl/cogl.h.in +++ b/clutter/cogl/cogl.h.in @@ -231,7 +231,7 @@ void cogl_scale (float x, float y); /** - * cogl_translatex: + * cogl_translate: * @x: Distance to translate along the x-axis * @y: Distance to translate along the y-axis * @z: Distance to translate along the z-axis @@ -239,26 +239,12 @@ void cogl_scale (float 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 (float x, - float y, - float z); - -/** - * cogl_translate: - * @x: Distance to translate along the x-axis - * @y: Distance to translate along the y-axis - * @z: Distance to translate along the z-axis - * - * Integer version of cogl_translatex(). Multiplies the current - * model-view matrix by one that translates the model along all three - * axes according to the given values. - */ -void cogl_translate (gint x, - gint y, - gint z); +void cogl_translate (float x, + float y, + float z); /** - * cogl_rotatex: + * cogl_rotate: * @angle: Angle in degrees to rotate. * @x: X-component of vertex to rotate around. * @y: Y-component of vertex to rotate around. @@ -270,26 +256,10 @@ void cogl_translate (gint x, * degrees about the vertex (0, 0, 1) causes a small counter-clockwise * rotation. */ -void cogl_rotatex (float angle, - gint x, - gint y, - gint z); - -/** - * cogl_rotate: - * @angle: Angle in degrees to rotate. - * @x: X-component of vertex to rotate around. - * @y: Y-component of vertex to rotate around. - * @z: Z-component of vertex to rotate around. - * - * Integer version of cogl_rotatex(). Multiplies the current - * model-view matrix by one that rotates the model around the vertex - * specified by @x, @y and @z. - */ -void cogl_rotate (gint angle, - gint x, - gint y, - gint z); +void cogl_rotate (float angle, + float x, + float y, + float z); /** * cogl_get_modelview_matrix: @@ -442,7 +412,7 @@ void cogl_enable_backface_culling (gboolean setting); * comparing with the value in @ref. The default function is CGL_ALWAYS the * initial reference value is 1.0. */ -void cogl_alpha_func (COGLenum func, +void cogl_alpha_func (COGLenum func, float ref); /** diff --git a/clutter/cogl/common/cogl-color.c b/clutter/cogl/common/cogl-color.c index dac3584..e4b74c6 100644 --- a/clutter/cogl/common/cogl-color.c +++ b/clutter/cogl/common/cogl-color.c @@ -58,7 +58,7 @@ cogl_color_set_from_4d (CoglColor *dest, } void -cogl_color_set_from_4x (CoglColor *dest, +cogl_color_set_from_4f (CoglColor *dest, float red, float green, float blue, @@ -157,13 +157,13 @@ cogl_set_source_color4ub (guint8 red, } void -cogl_set_source_color4x (float red, +cogl_set_source_color4f (float red, float green, float blue, float alpha) { CoglColor c = { 0, }; - cogl_color_set_from_4x (&c, red, green, blue, alpha); + cogl_color_set_from_4f (&c, red, green, blue, alpha); cogl_set_source_color (&c); } diff --git a/clutter/cogl/common/cogl-fixed.c b/clutter/cogl/common/cogl-fixed.c index 348d2ce..2e27da1 100644 --- a/clutter/cogl/common/cogl-fixed.c +++ b/clutter/cogl/common/cogl-fixed.c @@ -482,6 +482,12 @@ cogl_angle_sin (CoglAngle angle) } CoglFixed +cogl_fixed_tan (CoglFixed angle) +{ + return cogl_angle_tan (COGL_ANGLE_FROM_DEGX (angle)); +} + +CoglFixed cogl_angle_tan (CoglAngle angle) { int sign = 1; diff --git a/clutter/cogl/common/cogl-primitives.c b/clutter/cogl/common/cogl-primitives.c index 27e0e36..7e9b1b9 100644 --- a/clutter/cogl/common/cogl-primitives.c +++ b/clutter/cogl/common/cogl-primitives.c @@ -33,6 +33,7 @@ #include #include +#include #define _COGL_MAX_BEZ_RECURSE_DEPTH 16 @@ -42,19 +43,15 @@ void _cogl_path_add_node (gboolean new_sub_path, 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 (float x, - float y, - float width, - float height); +void _cogl_rectangle (float x, + float y, + float width, + float height); void -cogl_rectangle (gint x, - gint y, - guint width, - guint height) +cogl_rectangle (float x, + float y, + float width, + float height) { cogl_clip_ensure (); @@ -62,18 +59,6 @@ cogl_rectangle (gint x, } void -cogl_rectanglex (float x, - float y, - float width, - float height) -{ - cogl_clip_ensure (); - - _cogl_rectanglex (x, y, width, height); -} - - -void cogl_path_fill (void) { cogl_path_fill_preserve (); diff --git a/clutter/cogl/gl/cogl-primitives.c b/clutter/cogl/gl/cogl-primitives.c index dc5c5c6..e445657 100644 --- a/clutter/cogl/gl/cogl-primitives.c +++ b/clutter/cogl/gl/cogl-primitives.c @@ -34,39 +34,22 @@ #include #include +#include #define _COGL_MAX_BEZ_RECURSE_DEPTH 16 void -_cogl_rectangle (gint x, - gint y, - guint width, - guint height) +_cogl_rectangle (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( glRecti (x, y, x + width, y + height) ); -} - - -void -_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 ( (x), - (y), - (x + width), - (y + height)) ); + GE( glRectf (x, y, x + width, y + height) ); } void @@ -131,17 +114,15 @@ _cogl_path_stroke_nodes () static void _cogl_path_get_bounds (floatVec2 nodes_min, floatVec2 nodes_max, - gint *bounds_x, - gint *bounds_y, - guint *bounds_w, - guint *bounds_h) + float *bounds_x, + float *bounds_y, + float *bounds_w, + float *bounds_h) { - *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)); + *bounds_x = nodes_min.x; + *bounds_y = nodes_min.y; + *bounds_w = nodes_max.x - *bounds_x; + *bounds_h = nodes_max.y - *bounds_y; } void @@ -153,10 +134,10 @@ _cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, { guint path_start = 0; guint sub_path_num = 0; - gint bounds_x; - gint bounds_y; - guint bounds_w; - guint bounds_h; + float bounds_x; + float bounds_y; + float bounds_w; + float bounds_h; _cogl_path_get_bounds (nodes_min, nodes_max, &bounds_x, &bounds_y, &bounds_w, &bounds_h); @@ -238,10 +219,10 @@ _cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, void _cogl_path_fill_nodes () { - gint bounds_x; - gint bounds_y; - guint bounds_w; - guint bounds_h; + float bounds_x; + float bounds_y; + float bounds_w; + float bounds_h; _COGL_GET_CONTEXT (ctx, NO_RETVAL); diff --git a/clutter/cogl/gl/cogl-texture.c b/clutter/cogl/gl/cogl-texture.c index 5b7326c..1dac073 100644 --- a/clutter/cogl/gl/cogl-texture.c +++ b/clutter/cogl/gl/cogl-texture.c @@ -37,6 +37,7 @@ #include #include +#include /* #define COGL_DEBUG 1 @@ -555,7 +556,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint wx, wy; src = source_bmp->data - + (src_y + (y_iter.intersect_start) + + (src_y + ((int)y_iter.intersect_start) - dst_y) * source_bmp->rowstride + (src_x + x_span->start + x_span->size - x_span->waste @@ -600,7 +601,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint copy_width; src = source_bmp->data - + (src_x + (x_iter.intersect_start) + + (src_x + ((int)x_iter.intersect_start) - dst_x) * bpp + (src_y + y_span->start + y_span->size - y_span->waste diff --git a/clutter/cogl/gl/cogl.c b/clutter/cogl/gl/cogl.c index 7b61b63..aa0ec78 100644 --- a/clutter/cogl/gl/cogl.c +++ b/clutter/cogl/gl/cogl.c @@ -211,38 +211,21 @@ cogl_pop_matrix (void) void cogl_scale (float x, float y) { - glScaled ((double)(x), - (double)(y), + glScalef ((float)(x), + (float)(y), 1.0); } void -cogl_translatex (float x, float y, float z) +cogl_translate (float x, float y, float z) { - glTranslated ((double)(x), - (double)(y), - (double)(z)); + glTranslatef (x, y, z); } void -cogl_translate (gint x, gint y, gint z) +cogl_rotate (float angle, float x, float y, float z) { - glTranslatef ((float)x, (float)y, (float)z); -} - -void -cogl_rotatex (float angle, gint x, gint y, gint z) -{ - glRotated ((double)(angle), - (double)(x), - (double)(y), - (double)(z)); -} - -void -cogl_rotate (gint angle, gint x, gint y, gint z) -{ - glRotatef ((float)angle, (float)x, (float)y, (float)z); + glRotatef (angle, x, y, z); } static inline gboolean @@ -645,17 +628,13 @@ cogl_perspective (float fovy, * 2) When working with small numbers, we are loosing significant * precision */ - ymax = - (zNear * - (sinf (fovy_rad_half) / - cosf (fovy_rad_half))); - + ymax = (zNear * (sinf (fovy_rad_half) / cosf (fovy_rad_half))); xmax = (ymax * aspect); x = (zNear / xmax); y = (zNear / ymax); c = (-(zFar + zNear) / ( zFar - zNear)); - d = cogl_fixed_mul_div (-(2 * zFar), zNear, (zFar - zNear)); + d = (-(2 * zFar) * zNear) / (zFar - zNear); #define M(row,col) m[col*4+row] M(0,0) = (x); @@ -696,12 +675,12 @@ cogl_frustum (float left, GE( glMatrixMode (GL_PROJECTION) ); GE( glLoadIdentity () ); - GE( glFrustum ((double)(left), - (double)(right), - (double)(bottom), - (double)(top), - (double)(z_near), - (double)(z_far)) ); + GE( glFrustum ((GLdouble)(left), + (GLdouble)(right), + (GLdouble)(bottom), + (GLdouble)(top), + (GLdouble)(z_near), + (GLdouble)(z_far)) ); GE( glMatrixMode (GL_MODELVIEW) ); @@ -773,9 +752,7 @@ cogl_setup_viewport (guint width, { float fovy_rad = (fovy * G_PI) / 180; - z_camera = - ((sinf (fovy_rad) / - cosf (fovy_rad)) >> 1); + z_camera = ((sinf (fovy_rad) / cosf (fovy_rad)) / 2); } GE( glTranslatef (-0.5f, -0.5f, -z_camera) ); @@ -1166,73 +1143,19 @@ cogl_features_available (CoglFeatureFlags features) void 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) = (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 + glGetFloatv (GL_MODELVIEW_MATRIX, m); } void 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) = (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 + glGetFloatv (GL_PROJECTION_MATRIX, m); } void cogl_get_viewport (float v[4]) { - GLdouble vd[4]; - glGetDoublev(GL_VIEWPORT, &vd[0]); - - v[0] = (vd[0]); - v[1] = (vd[1]); - v[2] = (vd[2]); - v[3] = (vd[3]); + glGetFloatv (GL_VIEWPORT, v); } void diff --git a/clutter/cogl/gles/cogl-gles2-wrapper.c b/clutter/cogl/gles/cogl-gles2-wrapper.c index 4be0a55..b65f9e2 100644 --- a/clutter/cogl/gles/cogl-gles2-wrapper.c +++ b/clutter/cogl/gles/cogl-gles2-wrapper.c @@ -515,15 +515,6 @@ cogl_gles2_wrapper_update_matrix (CoglGles2Wrapper *wrapper, GLenum matrix_num) } void -cogl_wrap_glClearColorx (GLclampx r, GLclampx g, GLclampx b, GLclampx a) -{ - glClearColor ( (r), - (g), - (b), - (a)); -} - -void cogl_wrap_glPushMatrix () { const float *src; @@ -1143,13 +1134,9 @@ cogl_wrap_glAlphaFunc (GLenum func, GLclampf ref) } void -cogl_wrap_glColor4f (GLclampx r, GLclampx g, GLclampx b, GLclampx a) +cogl_wrap_glColor4f (GLclampf r, GLclampf g, GLclampf b, GLclampf a) { - glVertexAttrib4f (COGL_GLES2_WRAPPER_COLOR_ATTRIB, - (r), - (g), - (b), - (a)); + glVertexAttrib4f (COGL_GLES2_WRAPPER_COLOR_ATTRIB, r, g, b, a); } void @@ -1158,15 +1145,6 @@ cogl_wrap_glClipPlanef (GLenum plane, GLfloat *equation) /* FIXME */ } -static void -cogl_gles2_float_array_to_fixed (int size, - const GLfloat *floats, - GLfloat *fixeds) -{ - while (size-- > 0) - *(fixeds++) = (*(floats++)); -} - void cogl_wrap_glGetIntegerv (GLenum pname, GLint *params) { @@ -1185,31 +1163,24 @@ cogl_wrap_glGetIntegerv (GLenum pname, GLint *params) } void -cogl_wrap_glGetFixedv (GLenum pname, GLfloat *params) +cogl_wrap_glGetFloatv (GLenum pname, GLfloat *params) { _COGL_GET_GLES2_WRAPPER (w, NO_RETVAL); switch (pname) { case GL_MODELVIEW_MATRIX: - cogl_gles2_float_array_to_fixed (16, w->modelview_stack - + w->modelview_stack_pos * 16, - params); + memcpy (params, w->modelview_stack + w->modelview_stack_pos * 16, + sizeof (GLfloat) * 16); break; case GL_PROJECTION_MATRIX: - cogl_gles2_float_array_to_fixed (16, w->projection_stack - + w->projection_stack_pos * 16, - params); + memcpy (params, w->projection_stack + w->projection_stack_pos * 16, + sizeof (GLfloat) * 16); break; case GL_VIEWPORT: - { - GLfloat v[4]; - - glGetFloatv (GL_VIEWPORT, v); - cogl_gles2_float_array_to_fixed (4, v, params); - } + glGetFloatv (GL_VIEWPORT, params); break; } } diff --git a/clutter/cogl/gles/cogl-gles2-wrapper.h b/clutter/cogl/gles/cogl-gles2-wrapper.h index cb700cc..f126993 100644 --- a/clutter/cogl/gles/cogl-gles2-wrapper.h +++ b/clutter/cogl/gles/cogl-gles2-wrapper.h @@ -203,8 +203,6 @@ struct _CoglGles2WrapperShader void cogl_gles2_wrapper_init (CoglGles2Wrapper *wrapper); void cogl_gles2_wrapper_deinit (CoglGles2Wrapper *wrapper); -void cogl_wrap_glClearColorx (GLclampx r, GLclampx g, GLclampx b, GLclampx a); - void cogl_wrap_glPushMatrix (); void cogl_wrap_glPopMatrix (); void cogl_wrap_glMatrixMode (GLenum mode); @@ -239,12 +237,12 @@ void cogl_wrap_glDisableClientState (GLenum array); void cogl_wrap_glAlphaFunc (GLenum func, GLclampf ref); -void cogl_wrap_glColor4f (GLclampx r, GLclampx g, GLclampx b, GLclampx a); +void cogl_wrap_glColor4f (GLclampf r, GLclampf g, GLclampf b, GLclampf a); void cogl_wrap_glClipPlanef (GLenum plane, GLfloat *equation); void cogl_wrap_glGetIntegerv (GLenum pname, GLint *params); -void cogl_wrap_glGetFixedv (GLenum pname, GLfloat *params); +void cogl_wrap_glGetFloatv (GLenum pname, GLfloat *params); void cogl_wrap_glFogf (GLenum pname, GLfloat param); void cogl_wrap_glFogfv (GLenum pname, const GLfloat *params); @@ -273,35 +271,34 @@ void _cogl_gles2_clear_cache_for_program (CoglHandle program); /* If we're not using GL ES 2 then just use the GL functions directly */ -#define cogl_wrap_glClearColorx glClearColorx #define cogl_wrap_glDrawArrays glDrawArrays #define cogl_wrap_glDrawElements glDrawElements #define cogl_wrap_glPushMatrix glPushMatrix #define cogl_wrap_glPopMatrix glPopMatrix #define cogl_wrap_glMatrixMode glMatrixMode #define cogl_wrap_glLoadIdentity glLoadIdentity -#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_glMultMatrixf glMultMatrixf +#define cogl_wrap_glFrustumf glFrustumf +#define cogl_wrap_glScalef glScalef +#define cogl_wrap_glTranslatef glTranslatef +#define cogl_wrap_glRotatef glRotatef +#define cogl_wrap_glOrthof glOrthof #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_glTexEnvf glTexEnvx +#define cogl_wrap_glTexEnvf glTexEnvf #define cogl_wrap_glEnableClientState glEnableClientState #define cogl_wrap_glDisableClientState glDisableClientState #define cogl_wrap_glAlphaFunc glAlphaFunc -#define cogl_wrap_glColor4f glColor4x -#define cogl_wrap_glClipPlanef glClipPlanex +#define cogl_wrap_glColor4f glColor4f +#define cogl_wrap_glClipPlanef glClipPlanef #define cogl_wrap_glGetIntegerv glGetIntegerv -#define cogl_wrap_glGetFixedv glGetFixedv -#define cogl_wrap_glFogf glFogx -#define cogl_wrap_glFogfv glFogxv +#define cogl_wrap_glGetFloatv glGetFloatv +#define cogl_wrap_glFogf glFogf +#define cogl_wrap_glFogfv glFogfv #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 901fa5d..1a58805 100644 --- a/clutter/cogl/gles/cogl-primitives.c +++ b/clutter/cogl/gles/cogl-primitives.c @@ -34,59 +34,31 @@ #include #include +#include #define _COGL_MAX_BEZ_RECURSE_DEPTH 16 void -_cogl_rectangle (gint x, - gint y, - guint width, - guint height) +_cogl_rectangle (float x, + float y, + float width, + float height) { - /* 32-bit integers are not supported as coord types - in GLES . Fixed type has got 16 bits left of the - point which is equal to short anyway. */ - - GLshort rect_verts[8] = { - (GLshort) x, (GLshort) y, - (GLshort) (x + width), (GLshort) y, - (GLshort) x, (GLshort) (y + height), - (GLshort) (x + width), (GLshort) (y + height) + GLfloat rect_verts[8] = { + (GLfloat) x, (GLfloat) y, + (GLfloat) (x + width), (GLfloat) y, + (GLfloat) x, (GLfloat) (y + height), + (GLfloat) (x + width), (GLfloat) (y + height) }; _COGL_GET_CONTEXT (ctx, NO_RETVAL); cogl_enable (COGL_ENABLE_VERTEX_ARRAY | (ctx->color_alpha < 255 ? COGL_ENABLE_BLEND : 0)); - GE ( cogl_wrap_glVertexPointer (2, GL_SHORT, 0, rect_verts ) ); + GE ( cogl_wrap_glVertexPointer (2, GL_FLOAT, 0, rect_verts ) ); GE ( cogl_wrap_glDrawArrays (GL_TRIANGLE_STRIP, 0, 4) ); } - -void -_cogl_rectanglex (float x, - float y, - float width, - float height) -{ - GLfloat rect_verts[8] = { - x, y, - x + width, y, - x, y + height, - x + width, y + height - }; - - _COGL_GET_CONTEXT (ctx, NO_RETVAL); - - cogl_enable (COGL_ENABLE_VERTEX_ARRAY - | (ctx->color_alpha < 255 - ? COGL_ENABLE_BLEND : 0)); - - GE( cogl_wrap_glVertexPointer (2, GL_FIXED, 0, rect_verts) ); - GE( cogl_wrap_glDrawArrays (GL_TRIANGLE_STRIP, 0, 4) ); - -} - void _cogl_path_add_node (gboolean new_sub_path, float x, @@ -149,17 +121,15 @@ _cogl_path_stroke_nodes () static void _cogl_path_get_bounds (floatVec2 nodes_min, floatVec2 nodes_max, - gint *bounds_x, - gint *bounds_y, - guint *bounds_w, - guint *bounds_h) + float *bounds_x, + float *bounds_y, + float *bounds_w, + float *bounds_h) { - *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)); + *bounds_x = nodes_min.x; + *bounds_y = nodes_min.y; + *bounds_w = nodes_max.x - *bounds_x; + *bounds_h = nodes_max.y - *bounds_y; } static gint compare_ints (gconstpointer a, @@ -177,10 +147,10 @@ _cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, { guint path_start = 0; guint sub_path_num = 0; - gint bounds_x; - gint bounds_y; - guint bounds_w; - guint bounds_h; + float bounds_x; + float bounds_y; + float bounds_w; + float bounds_h; _cogl_path_get_bounds (nodes_min, nodes_max, &bounds_x, &bounds_y, &bounds_w, &bounds_h); @@ -244,12 +214,8 @@ _cogl_add_path_to_stencil_buffer (floatVec2 nodes_min, GE( cogl_wrap_glMatrixMode (GL_PROJECTION) ); GE( cogl_wrap_glPushMatrix () ); GE( cogl_wrap_glLoadIdentity () ); - cogl_rectanglex (-1.0, -1.0, - (float)(2), - (float)(2)); - cogl_rectanglex (-1.0, -1.0, - (float)(2), - (float)(2)); + cogl_rectangle (-1.0, -1.0, 2, 2); + cogl_rectangle (-1.0, -1.0, 2, 2); GE( cogl_wrap_glPopMatrix () ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); GE( cogl_wrap_glPopMatrix () ); @@ -435,10 +401,10 @@ _cogl_path_fill_nodes_scanlines (CoglPathNode *path, void _cogl_path_fill_nodes () { - gint bounds_x; - gint bounds_y; - guint bounds_w; - guint bounds_h; + float bounds_x; + float bounds_y; + float bounds_w; + float bounds_h; _COGL_GET_CONTEXT (ctx, NO_RETVAL); diff --git a/clutter/cogl/gles/cogl-texture.c b/clutter/cogl/gles/cogl-texture.c index 9f99ef3..deb7224 100644 --- a/clutter/cogl/gles/cogl-texture.c +++ b/clutter/cogl/gles/cogl-texture.c @@ -39,6 +39,7 @@ #include #include +#include #define glVertexPointer cogl_wrap_glVertexPointer #define glTexCoordPointer cogl_wrap_glTexCoordPointer @@ -768,7 +769,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint wx, wy; src = source_bmp->data - + (src_y + (y_iter.intersect_start) + + (src_y + ((int)y_iter.intersect_start) - dst_y) * source_bmp->rowstride + (src_x + x_span->start + x_span->size - x_span->waste @@ -813,7 +814,7 @@ _cogl_texture_upload_subregion_to_gl (CoglTexture *tex, guint copy_width; src = source_bmp->data - + (src_x + (x_iter.intersect_start) + + (src_x + ((int)x_iter.intersect_start) - dst_x) * bpp + (src_y + y_span->start + y_span->size - y_span->waste diff --git a/clutter/cogl/gles/cogl.c b/clutter/cogl/gles/cogl.c index 226f2e4..997f24a 100644 --- a/clutter/cogl/gles/cogl.c +++ b/clutter/cogl/gles/cogl.c @@ -37,6 +37,7 @@ #include "cogl-context.h" #include "cogl-gles2-wrapper.h" +#include /* GL error to string conversion */ #if COGL_DEBUG @@ -92,10 +93,10 @@ cogl_paint_init (const CoglColor *color) fprintf(stderr, "\n ============== Paint Start ================ \n"); #endif - cogl_wrap_glClearColorx (cogl_color_get_red (color), - cogl_color_get_green (color), - cogl_color_get_blue (color), - 0); + glClearColor (cogl_color_get_red (color), + cogl_color_get_green (color), + cogl_color_get_blue (color), + 0); glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); cogl_wrap_glDisable (GL_LIGHTING); @@ -122,35 +123,15 @@ cogl_scale (float x, float y) } void -cogl_translatex (float x, float y, float z) +cogl_translate (float x, float y, float z) { GE( cogl_wrap_glTranslatef (x, y, z) ); } void -cogl_translate (gint x, gint y, gint z) +cogl_rotate (float angle, float x, float y, float z) { - GE( cogl_wrap_glTranslatef ((float)(x), - (float)(y), - (float)(z)) ); -} - -void -cogl_rotatex (float angle, - float x, - float y, - float z) -{ - GE( cogl_wrap_glRotatef (angle,x,y,z) ); -} - -void -cogl_rotate (gint angle, gint x, gint y, gint z) -{ - GE( cogl_wrap_glRotatef ((float)(angle), - (float)(x), - (float)(y), - (float)(z)) ); + GE( cogl_wrap_glRotatef (angle, x, y, z) ); } static inline gboolean @@ -365,9 +346,8 @@ set_clip_plane (GLint plane_num, /* Calculate the angle between the axes and the line crossing the two points */ - angle = (atan2f (vertex_b[1] - vertex_a[1] * - vertex_b[0] - vertex_a[0]), - COGL_RADIANS_TO_DEGREES); + angle = atan2f (vertex_b[1] - vertex_a[1], + vertex_b[0] - vertex_a[0]) * (180.0/G_PI); GE( cogl_wrap_glPushMatrix () ); /* Load the identity matrix and multiply by the reverse of the @@ -405,8 +385,8 @@ _cogl_set_clip_planes (float x_offset, 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) ); + GE( cogl_wrap_glGetFloatv (GL_MODELVIEW_MATRIX, modelview) ); + GE( cogl_wrap_glGetFloatv (GL_PROJECTION_MATRIX, projection) ); project_vertex (modelview, projection, vertex_tl); project_vertex (modelview, projection, vertex_tr); @@ -457,7 +437,7 @@ _cogl_add_stencil_clip (float x_offset, GE( glStencilFunc (GL_NEVER, 0x1, 0x1) ); GE( glStencilOp (GL_REPLACE, GL_REPLACE, GL_REPLACE) ); - cogl_rectanglex (x_offset, y_offset, width, height); + cogl_rectangle (x_offset, y_offset, width, height); } else { @@ -465,7 +445,7 @@ _cogl_add_stencil_clip (float x_offset, rectangle */ GE( glStencilFunc (GL_NEVER, 0x1, 0x3) ); GE( glStencilOp (GL_INCR, GL_INCR, GL_INCR) ); - cogl_rectanglex (x_offset, y_offset, width, height); + cogl_rectangle (x_offset, y_offset, width, height); /* Subtract one from all pixels in the stencil buffer so that only pixels where both the original stencil buffer and the @@ -476,9 +456,7 @@ _cogl_add_stencil_clip (float x_offset, GE( cogl_wrap_glMatrixMode (GL_PROJECTION) ); GE( cogl_wrap_glPushMatrix () ); GE( cogl_wrap_glLoadIdentity () ); - cogl_rectanglex (-1.0, -1.0, - (float)(2), - (float)(2)); + cogl_rectangle (-1.0, -1.0, 2, 2); GE( cogl_wrap_glPopMatrix () ); GE( cogl_wrap_glMatrixMode (GL_MODELVIEW) ); GE( cogl_wrap_glPopMatrix () ); @@ -558,15 +536,13 @@ cogl_perspective (float fovy, * 2) When working with small numbers, we can are loosing significant * precision */ - ymax = (zNear * - (sinf (fovy_rad_half) / - cosf (fovy_rad_half))); + ymax = (zNear * (sinf (fovy_rad_half) / cosf (fovy_rad_half))); xmax = (ymax * aspect); x = (zNear / xmax); y = (zNear / ymax); c = (-(zFar + zNear) / ( zFar - zNear)); - d = (-((2 * zFar * zNear)) / (zFar - zNear)); + d = (-(2 * zFar) * zNear) / (zFar - zNear); #define M(row,col) m[col*4+row] M(0,0) = x; @@ -671,13 +647,13 @@ cogl_setup_viewport (guint w, if (fovy != 60.0) { float fovy_rad = (fovy * G_PI) / 180; - - z_camera = (sinf (fovy_rad) / - cosf (fovy_rad)) >> 1; + + z_camera = (sinf (fovy_rad) / cosf (fovy_rad)) / 2; } - GE( cogl_wrap_glTranslatef (-1 << 15, -1 << 15, -z_camera) ); + + GE( cogl_wrap_glTranslatef (-0.5f, -0.5f, -z_camera) ); GE( cogl_wrap_glScalef ( 1.0 / width, -1.0 / height, @@ -737,13 +713,13 @@ cogl_features_available (CoglFeatureFlags features) void cogl_get_modelview_matrix (float m[16]) { - cogl_wrap_glGetFixedv(GL_MODELVIEW_MATRIX, &m[0]); + cogl_wrap_glGetFloatv (GL_MODELVIEW_MATRIX, m); } void cogl_get_projection_matrix (float m[16]) { - cogl_wrap_glGetFixedv(GL_PROJECTION_MATRIX, &m[0]); + cogl_wrap_glGetFloatv (GL_PROJECTION_MATRIX, m); } void diff --git a/clutter/pango/cogl-pango-render.c b/clutter/pango/cogl-pango-render.c index d8f87fb..3cafc81 100644 --- a/clutter/pango/cogl-pango-render.c +++ b/clutter/pango/cogl-pango-render.c @@ -102,8 +102,6 @@ cogl_pango_renderer_draw_glyph (CoglPangoRenderer *priv, *(p++) = cache_value->tx2; *(p++) = cache_value->ty2; } -#define COGL_PANGO_UNIT_TO_FIXED(x) ((x) << (COGL_FIXED_Q - 10)) - static void cogl_pango_renderer_finalize (GObject *object); static void cogl_pango_renderer_draw_glyphs (PangoRenderer *renderer, PangoFont *font, @@ -439,8 +437,8 @@ cogl_pango_renderer_get_device_units (PangoRenderer *renderer, } else { - *xout = COGL_PANGO_UNIT_TO_FIXED (xin); - *yout = COGL_PANGO_UNIT_TO_FIXED (yin); + *xout = PANGO_PIXELS (xin); + *yout = PANGO_PIXELS (yin); } } @@ -463,7 +461,7 @@ cogl_pango_renderer_draw_rectangle (PangoRenderer *renderer, x + width, y + height, &x2, &y2); - cogl_rectanglex (x1, y1, x2 - x1, y2 - y1); + cogl_rectangle (x1, y1, x2 - x1, y2 - y1); } static void diff --git a/doc/reference/cogl/cogl-sections.txt b/doc/reference/cogl/cogl-sections.txt index dcd7c93..db4e16a 100644 --- a/doc/reference/cogl/cogl-sections.txt +++ b/doc/reference/cogl/cogl-sections.txt @@ -89,7 +89,7 @@ cogl_path_stroke cogl_path_stroke_preserve cogl_set_source_color cogl_set_source_color4ub -cogl_set_source_color4x +cogl_set_source_color4f cogl_rectangle @@ -257,7 +257,7 @@ cogl_color_copy cogl_color_free cogl_color_set_from_4ub cogl_color_set_from_4d -cogl_color_set_from_4x +cogl_color_set_from_4f cogl_color_get_red diff --git a/tests/conform/test-backface-culling.c b/tests/conform/test-backface-culling.c index 50c19fd..6303949 100644 --- a/tests/conform/test-backface-culling.c +++ b/tests/conform/test-backface-culling.c @@ -121,7 +121,7 @@ on_paint (ClutterActor *actor, TestState *state) /* Set the color to white so that all the textures will be drawn at their own color */ - cogl_set_source_color4x (1.0, 1.0, + cogl_set_source_color4f (1.0, 1.0, 1.0, 1.0); x2 = x1 + (float)(TEXTURE_SIZE); @@ -173,7 +173,7 @@ on_paint (ClutterActor *actor, TestState *state) x2 = x1 + (float)(TEXTURE_SIZE); /* Draw a regular rectangle (this should always show) */ - cogl_set_source_color4x (1.0, 0, 0, 1.0); + cogl_set_source_color4f (1.0, 0, 0, 1.0); cogl_rectangle ( (x1), (y1), (x2 - x1), (y2 - y1)); diff --git a/tests/interactive/test-cogl-tex-tile.c b/tests/interactive/test-cogl-tex-tile.c index 5063dff..177d60e 100644 --- a/tests/interactive/test-cogl-tex-tile.c +++ b/tests/interactive/test-cogl-tex-tile.c @@ -90,14 +90,14 @@ test_coglbox_paint(ClutterActor *self) ClutterFixed sin_frame, cos_frame; ClutterFixed frac_frame; gint t; - sin_frame = clutter_sini (CLUTTER_ANGLE_FROM_DEG (priv->frame)); - cos_frame = clutter_cosi (CLUTTER_ANGLE_FROM_DEG (priv->frame)); + sin_frame = clutter_sinx (priv->frame); + cos_frame = clutter_cosx (priv->frame); pingpong_frame = (priv->frame <= 180 ? priv->frame : 360 - priv->frame); frac_frame = (CLUTTER_INT_TO_FIXED (pingpong_frame) / - CLUTTER_INT_TO_FIXED (180)); - frac_frame += (1.0 >> 1); - frac_frame <<= 1; + CLUTTER_INT_TO_FIXED (180)); + frac_frame += 0.5; + frac_frame *= 2; for (t=0; t<4; t+=2) { -- 2.7.4