mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 03:22:04 +00:00
2008-04-09 Emmanuele Bassi <ebassi@openedhand.com>
* autogen.sh: Clean up a bit * clutter/clutter-fixed.[ch]: (clutter_double_to_fixed), (clutter_double_to_int), (clutter_double_to_uint): Make these functions public, as they are expanded by their respective macros. This fixes the errors from the linker trying to resolve their name.
This commit is contained in:
parent
b4ab8b63a1
commit
cf4ba6c512
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2008-04-09 Emmanuele Bassi <ebassi@openedhand.com>
|
||||||
|
|
||||||
|
* autogen.sh: Clean up a bit
|
||||||
|
|
||||||
|
* clutter/clutter-fixed.[ch]:
|
||||||
|
(clutter_double_to_fixed),
|
||||||
|
(clutter_double_to_int),
|
||||||
|
(clutter_double_to_uint): Make these functions public, as they
|
||||||
|
are expanded by their respective macros. This fixes the errors
|
||||||
|
from the linker trying to resolve their name.
|
||||||
|
|
||||||
2008-04-09 Neil Roberts <neil@o-hand.com>
|
2008-04-09 Neil Roberts <neil@o-hand.com>
|
||||||
|
|
||||||
Applied patch from bug #871
|
Applied patch from bug #871
|
||||||
|
21
autogen.sh
21
autogen.sh
@ -1,7 +1,22 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
gtkdocize || exit 1
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
PROJECT=Clutter
|
||||||
|
TEST_TYPE=-d
|
||||||
|
FILE=clutter
|
||||||
|
|
||||||
|
test $TEST_TYPE $FILE || {
|
||||||
|
echo "You must run this script in the top-level $PROJECT directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
gtkdocize || exit $?
|
||||||
|
|
||||||
# back in the stupidity of autoreconf
|
# back in the stupidity of autoreconf
|
||||||
autoreconf -v --install || exit 1
|
autoreconf -v --install || exit $?
|
||||||
|
|
||||||
./configure "$@"
|
./configure "$@" ${GTK_DOC_ARGS}
|
||||||
|
|
||||||
|
echo "Now type 'make' to compile $PROJECT."
|
||||||
|
@ -148,6 +148,94 @@ static ClutterFixed sin_tbl [] =
|
|||||||
*/
|
*/
|
||||||
#define CFX_SIN_STEP 0x00000192
|
#define CFX_SIN_STEP 0x00000192
|
||||||
|
|
||||||
|
/* <private> */
|
||||||
|
const double _magic = 68719476736.0 * 1.5;
|
||||||
|
|
||||||
|
/* Where in the 64 bits of double is the mantisa */
|
||||||
|
#if (__FLOAT_WORD_ORDER == 1234)
|
||||||
|
#define _CFX_MAN 0
|
||||||
|
#elif (__FLOAT_WORD_ORDER == 4321)
|
||||||
|
#define _CFX_MAN 1
|
||||||
|
#else
|
||||||
|
#define CFX_NO_FAST_CONVERSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* clutter_double_to_fixed :
|
||||||
|
* @value: value to be converted
|
||||||
|
*
|
||||||
|
* A fast conversion from double precision floating to fixed point
|
||||||
|
*
|
||||||
|
* Return value: Fixed point representation of the value
|
||||||
|
*
|
||||||
|
* Since: 0.2
|
||||||
|
*/
|
||||||
|
ClutterFixed
|
||||||
|
clutter_double_to_fixed (double val)
|
||||||
|
{
|
||||||
|
#ifdef CFX_NO_FAST_CONVERSIONS
|
||||||
|
return (ClutterFixed)(val * (double)CFX_ONE);
|
||||||
|
#else
|
||||||
|
union
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
unsigned int i[2];
|
||||||
|
} dbl;
|
||||||
|
|
||||||
|
dbl.d = val;
|
||||||
|
dbl.d = dbl.d + _magic;
|
||||||
|
return dbl.i[_CFX_MAN];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* clutter_double_to_int :
|
||||||
|
* @value: value to be converted
|
||||||
|
*
|
||||||
|
* A fast conversion from doulbe precision floatint point to int;
|
||||||
|
* used this instead of casting double/float to int.
|
||||||
|
*
|
||||||
|
* Return value: Integer part of the double
|
||||||
|
*
|
||||||
|
* Since: 0.2
|
||||||
|
*/
|
||||||
|
gint
|
||||||
|
clutter_double_to_int (double val)
|
||||||
|
{
|
||||||
|
#ifdef CFX_NO_FAST_CONVERSIONS
|
||||||
|
return (gint)(val);
|
||||||
|
#else
|
||||||
|
union
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
unsigned int i[2];
|
||||||
|
} dbl;
|
||||||
|
|
||||||
|
dbl.d = val;
|
||||||
|
dbl.d = dbl.d + _magic;
|
||||||
|
return ((int)dbl.i[_CFX_MAN]) >> 16;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
guint
|
||||||
|
clutter_double_to_uint (double val)
|
||||||
|
{
|
||||||
|
#ifdef CFX_NO_FAST_CONVERSIONS
|
||||||
|
return (guint)(val);
|
||||||
|
#else
|
||||||
|
union
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
unsigned int i[2];
|
||||||
|
} dbl;
|
||||||
|
|
||||||
|
dbl.d = val;
|
||||||
|
dbl.d = dbl.d + _magic;
|
||||||
|
return (dbl.i[_CFX_MAN]) >> 16;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef _CFX_MAN
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clutter_sinx:
|
* clutter_sinx:
|
||||||
@ -884,93 +972,3 @@ clutter_powx (guint x, ClutterFixed y)
|
|||||||
return clutter_pow2x (CFX_MUL (y, clutter_log2x (x)));
|
return clutter_pow2x (CFX_MUL (y, clutter_log2x (x)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* <private> */
|
|
||||||
const double _magic = 68719476736.0*1.5;
|
|
||||||
|
|
||||||
/* Where in the 64 bits of double is the mantisa */
|
|
||||||
#if (__FLOAT_WORD_ORDER == 1234)
|
|
||||||
#define _CFX_MAN 0
|
|
||||||
#elif (__FLOAT_WORD_ORDER == 4321)
|
|
||||||
#define _CFX_MAN 1
|
|
||||||
#else
|
|
||||||
#define CFX_NO_FAST_CONVERSIONS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* clutter_double_to_fixed :
|
|
||||||
* @value: value to be converted
|
|
||||||
*
|
|
||||||
* A fast conversion from double precision floating to fixed point
|
|
||||||
*
|
|
||||||
* Return value: Fixed point representation of the value
|
|
||||||
*
|
|
||||||
* Since: 0.2
|
|
||||||
*/
|
|
||||||
ClutterFixed
|
|
||||||
_clutter_double_to_fixed (double val)
|
|
||||||
{
|
|
||||||
#ifdef CFX_NO_FAST_CONVERSIONS
|
|
||||||
return (ClutterFixed)(val * (double)CFX_ONE);
|
|
||||||
#else
|
|
||||||
union
|
|
||||||
{
|
|
||||||
double d;
|
|
||||||
unsigned int i[2];
|
|
||||||
} dbl;
|
|
||||||
|
|
||||||
dbl.d = val;
|
|
||||||
dbl.d = dbl.d + _magic;
|
|
||||||
return dbl.i[_CFX_MAN];
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* clutter_double_to_int :
|
|
||||||
* @value: value to be converted
|
|
||||||
*
|
|
||||||
* A fast conversion from doulbe precision floatint point to int;
|
|
||||||
* used this instead of casting double/float to int.
|
|
||||||
*
|
|
||||||
* Return value: Integer part of the double
|
|
||||||
*
|
|
||||||
* Since: 0.2
|
|
||||||
*/
|
|
||||||
gint
|
|
||||||
_clutter_double_to_int (double val)
|
|
||||||
{
|
|
||||||
#ifdef CFX_NO_FAST_CONVERSIONS
|
|
||||||
return (gint)(val);
|
|
||||||
#else
|
|
||||||
union
|
|
||||||
{
|
|
||||||
double d;
|
|
||||||
unsigned int i[2];
|
|
||||||
} dbl;
|
|
||||||
|
|
||||||
dbl.d = val;
|
|
||||||
dbl.d = dbl.d + _magic;
|
|
||||||
return ((int)dbl.i[_CFX_MAN]) >> 16;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
guint
|
|
||||||
_clutter_double_to_uint (double val)
|
|
||||||
{
|
|
||||||
#ifdef CFX_NO_FAST_CONVERSIONS
|
|
||||||
return (guint)(val);
|
|
||||||
#else
|
|
||||||
union
|
|
||||||
{
|
|
||||||
double d;
|
|
||||||
unsigned int i[2];
|
|
||||||
} dbl;
|
|
||||||
|
|
||||||
dbl.d = val;
|
|
||||||
dbl.d = dbl.d + _magic;
|
|
||||||
return (dbl.i[_CFX_MAN]) >> 16;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef _CFX_MAN
|
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ typedef gint32 ClutterAngle; /* angle such that 1024 == 2*PI */
|
|||||||
*
|
*
|
||||||
* Convert a float value to fixed.
|
* Convert a float value to fixed.
|
||||||
*/
|
*/
|
||||||
#define CLUTTER_FLOAT_TO_FIXED(x) (_clutter_double_to_fixed ((x)))
|
#define CLUTTER_FLOAT_TO_FIXED(x) (clutter_double_to_fixed ((x)))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CLUTTER_FLOAT_TO_INT:
|
* CLUTTER_FLOAT_TO_INT:
|
||||||
@ -183,7 +183,7 @@ typedef gint32 ClutterAngle; /* angle such that 1024 == 2*PI */
|
|||||||
*
|
*
|
||||||
* Convert a float value to int.
|
* Convert a float value to int.
|
||||||
*/
|
*/
|
||||||
#define CLUTTER_FLOAT_TO_INT(x) (_clutter_double_to_int ((x)))
|
#define CLUTTER_FLOAT_TO_INT(x) (clutter_double_to_int ((x)))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CLUTTER_FLOAT_TO_UINT:
|
* CLUTTER_FLOAT_TO_UINT:
|
||||||
@ -191,7 +191,7 @@ typedef gint32 ClutterAngle; /* angle such that 1024 == 2*PI */
|
|||||||
*
|
*
|
||||||
* Convert a float value to unsigned int.
|
* Convert a float value to unsigned int.
|
||||||
*/
|
*/
|
||||||
#define CLUTTER_FLOAT_TO_UINT(x) (_clutter_double_to_uint ((x)))
|
#define CLUTTER_FLOAT_TO_UINT(x) (clutter_double_to_uint ((x)))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CLUTTER_INT_TO_FIXED:
|
* CLUTTER_INT_TO_FIXED:
|
||||||
@ -279,10 +279,12 @@ typedef gint32 ClutterAngle; /* angle such that 1024 == 2*PI */
|
|||||||
/*< public >*/
|
/*< public >*/
|
||||||
/* Fixed point math routines */
|
/* Fixed point math routines */
|
||||||
extern inline
|
extern inline
|
||||||
ClutterFixed clutter_qmulx (ClutterFixed op1, ClutterFixed op2);
|
ClutterFixed clutter_qmulx (ClutterFixed op1,
|
||||||
|
ClutterFixed op2);
|
||||||
|
|
||||||
extern inline
|
extern inline
|
||||||
ClutterFixed clutter_qdivx (ClutterFixed op1, ClutterFixed op2);
|
ClutterFixed clutter_qdivx (ClutterFixed op1,
|
||||||
|
ClutterFixed op2);
|
||||||
|
|
||||||
ClutterFixed clutter_sinx (ClutterFixed angle);
|
ClutterFixed clutter_sinx (ClutterFixed angle);
|
||||||
ClutterFixed clutter_sini (ClutterAngle angle);
|
ClutterFixed clutter_sini (ClutterAngle angle);
|
||||||
@ -371,14 +373,9 @@ guint clutter_pow2x (ClutterFixed x);
|
|||||||
guint clutter_powx (guint x, ClutterFixed y);
|
guint clutter_powx (guint x, ClutterFixed y);
|
||||||
|
|
||||||
/* <private> */
|
/* <private> */
|
||||||
extern inline
|
extern ClutterFixed clutter_double_to_fixed (double value);
|
||||||
ClutterFixed _clutter_double_to_fixed (double value);
|
extern gint clutter_double_to_int (double value);
|
||||||
|
extern guint clutter_double_to_unit (double value);
|
||||||
extern inline
|
|
||||||
gint _clutter_double_to_int (double value);
|
|
||||||
|
|
||||||
extern inline
|
|
||||||
guint _clutter_double_to_uint (double value);
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user