android_util_FloatMath.cpp revision 9066cfe9886ac131c34d59ed0e2d287b0e3c0087
1#include "jni.h"
2#include <android_runtime/AndroidRuntime.h>
3#include <math.h>
4#include <float.h>
5#include "SkTypes.h"
6
7class MathUtilsGlue {
8public:
9    static float FloorF(JNIEnv* env, jobject clazz, float x) {
10        return floorf(x);
11    }
12
13    static float CeilF(JNIEnv* env, jobject clazz, float x) {
14        return ceilf(x);
15    }
16
17    static float SinF(JNIEnv* env, jobject clazz, float x) {
18        return sinf(x);
19    }
20
21    static float CosF(JNIEnv* env, jobject clazz, float x) {
22        return cosf(x);
23    }
24
25    static float SqrtF(JNIEnv* env, jobject clazz, float x) {
26        return sqrtf(x);
27    }
28};
29
30static 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
38int 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