Adds a CLUTTER_NEARBYINT macro for float rounding

This is a replacement for the nearbyint function which always rounds to
the nearest integer. nearbyint is a C99 function so it might not always
be available but also it seems in glibc it is defined as a function call
so this macro could end up faster anyway. We can't just add 0.5 because
it will break for negative numbers.

Signed-off-by: Neil Roberts <neil@linux.intel.com>
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
This commit is contained in:
Robert Bragg 2011-07-12 01:02:43 +01:00
parent ad234b303c
commit 32487af55b

View File

@ -84,6 +84,13 @@ typedef struct _ClutterMainContext ClutterMainContext;
#define P_(String) (String) #define P_(String) (String)
#endif #endif
/* This is a replacement for the nearbyint function which always rounds to the
* nearest integer. nearbyint is apparently a C99 function so it might not
* always be available but also it seems in glibc it is defined as a function
* call so this macro could end up faster anyway. We can't just add 0.5f
* because it will break for negative numbers. */
#define CLUTTER_NEARBYINT(x) ((int) ((x) < 0.0f ? (x) - 0.5f : (x) + 0.5f))
typedef enum { typedef enum {
CLUTTER_ACTOR_UNUSED_FLAG = 0, CLUTTER_ACTOR_UNUSED_FLAG = 0,