1 #include "jni.h"
2 #include <android_runtime/AndroidRuntime.h>
3 #include <math.h>
4 #include <float.h>
5 #include "SkTypes.h"
6
7 class MathUtilsGlue {
8 public:
FloorF(JNIEnv * env,jobject clazz,float x)9 static float FloorF(JNIEnv* env, jobject clazz, float x) {
10 return floorf(x);
11 }
12
CeilF(JNIEnv * env,jobject clazz,float x)13 static float CeilF(JNIEnv* env, jobject clazz, float x) {
14 return ceilf(x);
15 }
16
SinF(JNIEnv * env,jobject clazz,float x)17 static float SinF(JNIEnv* env, jobject clazz, float x) {
18 return sinf(x);
19 }
20
CosF(JNIEnv * env,jobject clazz,float x)21 static float CosF(JNIEnv* env, jobject clazz, float x) {
22 return cosf(x);
23 }
24
SqrtF(JNIEnv * env,jobject clazz,float x)25 static float SqrtF(JNIEnv* env, jobject clazz, float x) {
26 return sqrtf(x);
27 }
28 };
29
30 static JNINativeMethod gMathUtilsMethods[] = {
31 {"floor", "(F)F", (void*) MathUtilsGlue::FloorF},
32 {"ceil", "(F)F", (void*) MathUtilsGlue::CeilF},
33 {"sin", "(F)F", (void*) MathUtilsGlue::SinF},
34 {"cos", "(F)F", (void*) MathUtilsGlue::CosF},
35 {"sqrt", "(F)F", (void*) MathUtilsGlue::SqrtF}
36 };
37
register_android_util_FloatMath(JNIEnv * env)38 int register_android_util_FloatMath(JNIEnv* env)
39 {
40 int result = android::AndroidRuntime::registerNativeMethods(env,
41 "android/util/FloatMath",
42 gMathUtilsMethods,
43 SK_ARRAY_COUNT(gMathUtilsMethods));
44 return result;
45 }
46
47