diff options
author | marha <marha@users.sourceforge.net> | 2013-10-16 11:30:08 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-10-16 11:30:08 +0200 |
commit | 56e12b1310b1b52d00bc27e919d915255af5bf03 (patch) | |
tree | 19379a18fe9a678a109397837339820892101e4b /mesalib/src/mesa/main/macros.h | |
parent | c5883f8af060c0a300a29e732e8bb893bc8e0eca (diff) | |
parent | 9e23b44bfe1e6e85231b1c07d945cadf0c868648 (diff) | |
download | vcxsrv-56e12b1310b1b52d00bc27e919d915255af5bf03.tar.gz vcxsrv-56e12b1310b1b52d00bc27e919d915255af5bf03.tar.bz2 vcxsrv-56e12b1310b1b52d00bc27e919d915255af5bf03.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
fontconfig libxcb libxcb/xcb-proto xserver mesa pixman xkbcomp git update 16 oct 2013
Conflicts:
mesalib/src/mesa/drivers/dri/common/drisw_util.c
pixman/pixman/pixman-mmx.c
Diffstat (limited to 'mesalib/src/mesa/main/macros.h')
-rw-r--r-- | mesalib/src/mesa/main/macros.h | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/mesalib/src/mesa/main/macros.h b/mesalib/src/mesa/main/macros.h index 1052f7560..880c6564e 100644 --- a/mesalib/src/mesa/main/macros.h +++ b/mesalib/src/mesa/main/macros.h @@ -184,6 +184,28 @@ static inline GLfloat UINT_AS_FLT(GLuint u) return tmp.f; } +/** + * Convert a floating point value to an unsigned fixed point value. + * + * \param frac_bits The number of bits used to store the fractional part. + */ +static INLINE uint32_t +U_FIXED(float value, uint32_t frac_bits) +{ + value *= (1 << frac_bits); + return value < 0 ? 0 : value; +} + +/** + * Convert a floating point value to an signed fixed point value. + * + * \param frac_bits The number of bits used to store the fractional part. + */ +static INLINE uint32_t +S_FIXED(float value, uint32_t frac_bits) +{ + return value * (1 << frac_bits); +} /*@}*/ @@ -673,8 +695,20 @@ minify(unsigned value, unsigned levels) * * \sa ROUND_DOWN_TO() */ -#define ALIGN(value, alignment) (((value) + alignment - 1) & ~(alignment - 1)) +#define ALIGN(value, alignment) (((value) + (alignment) - 1) & ~((alignment) - 1)) +/** + * Align a value down to an alignment value + * + * If \c value is not already aligned to the requested alignment value, it + * will be rounded down. + * + * \param value Value to be rounded + * \param alignment Alignment value to be used. This must be a power of two. + * + * \sa ALIGN() + */ +#define ROUND_DOWN_TO(value, alignment) ((value) & ~(alignment - 1)) /** Cross product of two 3-element vectors */ |