• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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