For MSVC builds, implement 'rint()' and 'rintf()' to supplement the ones that were already implemented
This commit is contained in:
parent
4e36760bac
commit
8b5474b9e1
@ -57,10 +57,6 @@
|
||||
#include "utils_videotl.h"
|
||||
#include "i18n.h"
|
||||
|
||||
#ifdef COMPILER_MSVC
|
||||
#define rintf(x) round((x) + 0.5)
|
||||
#endif
|
||||
|
||||
using namespace Gtk;
|
||||
using namespace std;
|
||||
using namespace PBD;
|
||||
|
@ -21,10 +21,6 @@
|
||||
#include "gtk2ardour-config.h"
|
||||
#endif
|
||||
|
||||
#ifdef COMPILER_MSVC
|
||||
#define rintf(x) round((x) + 0.5)
|
||||
#endif
|
||||
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
#include <set>
|
||||
|
@ -56,6 +56,18 @@
|
||||
return intgr ;
|
||||
}
|
||||
|
||||
__inline double
|
||||
rint (double flt)
|
||||
{ long long int intgr;
|
||||
|
||||
_asm
|
||||
{ fld flt
|
||||
fistp intgr
|
||||
} ;
|
||||
|
||||
return (double) intgr ;
|
||||
}
|
||||
|
||||
__inline long int
|
||||
lrintf (float flt)
|
||||
{ int intgr;
|
||||
@ -68,6 +80,18 @@
|
||||
return intgr ;
|
||||
}
|
||||
|
||||
__inline float
|
||||
rintf (float flt)
|
||||
{ int intgr;
|
||||
|
||||
_asm
|
||||
{ fld flt
|
||||
fistp intgr
|
||||
} ;
|
||||
|
||||
return (float) intgr ;
|
||||
}
|
||||
|
||||
__inline long long int
|
||||
llrint (double flt)
|
||||
{ long long int intgr;
|
||||
|
@ -247,11 +247,6 @@ inline int64_t abs(int64_t val) throw()
|
||||
extern bool operator == (const Type& lhs, const Type& rhs);
|
||||
#endif
|
||||
|
||||
// round().... Unlike Linux, Windows doesn't seem to support the
|
||||
// concept of a system-wide (or programmable) rounding direction.
|
||||
// Fortunately, 'round to nearest' seems to be the default action
|
||||
// under Linux, so let's copy that until we find out otherwise.
|
||||
#define rint(value) round(value)
|
||||
#if !defined(LIBPBD_API) || defined(PBD_IS_IN_WIN_STATIC_LIB)
|
||||
extern double round(double x);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user