union
{
float f;
- ClutterFixed i;
+ guint32 i;
} flt;
ClutterFixed magic = 0x56f7;
*/
flt.i += (CLUTTER_INT_TO_FIXED (127) - y);
flt.i <<= 7;
-
- return CLUTTER_FLOAT_TO_INT (flt.f);
+
+ return CLUTTER_FLOAT_TO_UINT (flt.f);
}
return ((int)dbl.i[0]) >> 16;
}
+guint
+_clutter_double_to_uint (double val)
+{
+ union
+ {
+ double d;
+ unsigned int i[2];
+ } dbl;
+
+ dbl.d = val;
+ dbl.d = dbl.d + _magic;
+ return (dbl.i[0]) >> 16;
+}
+
#undef _CFX_MAN
#define CLUTTER_FLOAT_TO_FIXED(x) (_clutter_double_to_fixed ((x)))
#define CLUTTER_FLOAT_TO_INT(x) (_clutter_double_to_int ((x)))
+#define CLUTTER_FLOAT_TO_UINT(x) (_clutter_double_to_uint ((x)))
#define CLUTTER_INT_TO_FIXED(x) ((x) << CFX_Q)
#define CLUTTER_FIXED_INT(x) ((x) >> CFX_Q)
extern inline
gint _clutter_double_to_int (double value);
+extern inline
+guint _clutter_double_to_uint (double value);
+
G_END_DECLS
#endif /* _HAVE_CLUTTER_FIXED_H */