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: 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 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 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