Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added SDL_round(), contributed by Benoit Pierre - thanks!
  • Loading branch information
slouken committed Aug 17, 2014
1 parent d673d8c commit 4e7db78
Show file tree
Hide file tree
Showing 19 changed files with 29 additions and 4 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Expand Up @@ -495,7 +495,7 @@ if(LIBC)
strlen _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa
_ultoa strtol strtoul strtoll strtod atoi atof strcmp strncmp
_stricmp _strnicmp sscanf atan atan2 acos asin ceil copysign cos
cosf fabs floor log pow scalbn sin sinf sqrt sqrtf tan tanf)
cosf fabs floor log pow round scalbn sin sinf sqrt sqrtf tan tanf)
string(TOUPPER ${_FN} _UPPER)
set(HAVE_${_UPPER} 1)
endforeach()
Expand Down Expand Up @@ -541,7 +541,7 @@ if(LIBC)
if(HAVE_LIBM)
set(CMAKE_REQUIRED_LIBRARIES m)
foreach(_FN
atan atan2 ceil copysign cos cosf fabs floor log pow scalbn sin
atan atan2 ceil copysign cos cosf fabs floor log pow round scalbn sin
sinf sqrt sqrtf tan tanf)
string(TOUPPER ${_FN} _UPPER)
set(_HAVEVAR "HAVE_${_UPPER}")
Expand Down
2 changes: 1 addition & 1 deletion configure
Expand Up @@ -16641,7 +16641,7 @@ if test "x$ac_cv_lib_m_pow" = xyes; then :
LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"
fi

for ac_func in atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt sqrtf tan tanf
for ac_func in atan atan2 acos asin ceil copysign cos cosf fabs floor log pow round scalbn sin sinf sqrt sqrtf tan tanf
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
Expand Down
2 changes: 1 addition & 1 deletion configure.in
Expand Up @@ -271,7 +271,7 @@ if test x$enable_libc = xyes; then
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname)

AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt sqrtf tan tanf)
AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow round scalbn sin sinf sqrt sqrtf tan tanf)

AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
AC_CHECK_FUNCS(iconv)
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config.h.cmake
Expand Up @@ -140,6 +140,7 @@
#cmakedefine HAVE_FLOOR 1
#cmakedefine HAVE_LOG 1
#cmakedefine HAVE_POW 1
#cmakedefine HAVE_ROUND 1
#cmakedefine HAVE_SCALBN 1
#cmakedefine HAVE_SIN 1
#cmakedefine HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config.h.in
Expand Up @@ -150,6 +150,7 @@
#undef HAVE_FLOOR
#undef HAVE_LOG
#undef HAVE_POW
#undef HAVE_ROUND
#undef HAVE_SCALBN
#undef HAVE_SIN
#undef HAVE_SINF
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_android.h
Expand Up @@ -96,6 +96,7 @@
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_ROUND 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_iphoneos.h
Expand Up @@ -94,6 +94,7 @@
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_ROUND 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_macosx.h
Expand Up @@ -92,6 +92,7 @@
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_ROUND 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_pandora.h
Expand Up @@ -91,6 +91,7 @@
#define HAVE_FABS 1
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_ROUND 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_psp.h
Expand Up @@ -94,6 +94,7 @@
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_ROUND 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_windows.h
Expand Up @@ -133,6 +133,7 @@ typedef unsigned int uintptr_t;
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_ROUND 1
#define HAVE_SIN 1
#define HAVE_SINF 1
#define HAVE_SQRT 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_winrt.h
Expand Up @@ -135,6 +135,7 @@ typedef unsigned int uintptr_t;
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_ROUND 1
//#define HAVE_SCALBN 1
#define HAVE__SCALB 1
#define HAVE_SIN 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_config_wiz.h
Expand Up @@ -85,6 +85,7 @@
#define HAVE_FABS 1
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_ROUND 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
Expand Down
1 change: 1 addition & 0 deletions include/SDL_stdinc.h
Expand Up @@ -428,6 +428,7 @@ extern DECLSPEC double SDLCALL SDL_fabs(double x);
extern DECLSPEC double SDLCALL SDL_floor(double x);
extern DECLSPEC double SDLCALL SDL_log(double x);
extern DECLSPEC double SDLCALL SDL_pow(double x, double y);
extern DECLSPEC double SDLCALL SDL_round(double x);
extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n);
extern DECLSPEC double SDLCALL SDL_sin(double x);
extern DECLSPEC float SDLCALL SDL_sinf(float x);
Expand Down
1 change: 1 addition & 0 deletions src/dynapi/SDL_dynapi_overrides.h
Expand Up @@ -591,3 +591,4 @@
#define SDL_QueueAudio SDL_QueueAudio_REAL
#define SDL_GetQueuedAudioSize SDL_GetQueuedAudioSize_REAL
#define SDL_ClearQueuedAudio SDL_ClearQueuedAudio_REAL
#define SDL_round SDL_round_REAL
1 change: 1 addition & 0 deletions src/dynapi/SDL_dynapi_procs.h
Expand Up @@ -623,3 +623,4 @@ SDL_DYNAPI_PROC(SDL_bool,SDL_HasAVX2,(void),(),return)
SDL_DYNAPI_PROC(int,SDL_QueueAudio,(SDL_AudioDeviceID a, const void *b, Uint32 c),(a,b,c),return)
SDL_DYNAPI_PROC(Uint32,SDL_GetQueuedAudioSize,(SDL_AudioDeviceID a),(a),return)
SDL_DYNAPI_PROC(void,SDL_ClearQueuedAudio,(SDL_AudioDeviceID a),(a),)
SDL_DYNAPI_PROC(double,SDL_round,(double a),(a),return)
1 change: 1 addition & 0 deletions src/libm/math_libm.h
Expand Up @@ -30,6 +30,7 @@ double SDL_uclibc_fabs(double x);
double SDL_uclibc_floor(double x);
double SDL_uclibc_log(double x);
double SDL_uclibc_pow(double x, double y);
double SDL_uclibc_round(double x);
double SDL_uclibc_scalbn(double x, int n);
double SDL_uclibc_sin(double x);
double SDL_uclibc_sqrt(double x);
Expand Down
1 change: 1 addition & 0 deletions src/libm/math_private.h
Expand Up @@ -37,6 +37,7 @@ typedef unsigned int u_int32_t;
#define floor SDL_uclibc_floor
#define __ieee754_log SDL_uclibc_log
#define __ieee754_pow SDL_uclibc_pow
#define round SDL_uclibc_round
#define scalbn SDL_uclibc_scalbn
#define sin SDL_uclibc_sin
#define __ieee754_sqrt SDL_uclibc_sqrt
Expand Down
10 changes: 10 additions & 0 deletions src/stdlib/SDL_stdlib.c
Expand Up @@ -169,6 +169,16 @@ SDL_pow(double x, double y)
#endif /* HAVE_POW */
}

double
SDL_round(double x)
{
#if defined(HAVE_ROUND)
return round(x);
#else
return SDL_uclibc_round(x);
#endif /* HAVE_ROUND */
}

double
SDL_scalbn(double x, int n)
{
Expand Down

0 comments on commit 4e7db78

Please sign in to comment.