diff options
Diffstat (limited to 'core/jni/android/graphics/Xfermode.cpp')
-rw-r--r-- | core/jni/android/graphics/Xfermode.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/core/jni/android/graphics/Xfermode.cpp b/core/jni/android/graphics/Xfermode.cpp index 976a91f..eedceb7 100644 --- a/core/jni/android/graphics/Xfermode.cpp +++ b/core/jni/android/graphics/Xfermode.cpp @@ -26,35 +26,37 @@ namespace android { class SkXfermodeGlue { public: - static void finalizer(JNIEnv* env, jobject, SkXfermode* obj) + static void finalizer(JNIEnv* env, jobject, jlong objHandle) { + SkXfermode* obj = reinterpret_cast<SkXfermode *>(objHandle); SkSafeUnref(obj); } - static SkXfermode* avoid_create(JNIEnv* env, jobject, SkColor opColor, - U8CPU tolerance, SkAvoidXfermode::Mode mode) + static jlong avoid_create(JNIEnv* env, jobject, jint opColor, + jint tolerance, jint modeHandle) { - return new SkAvoidXfermode(opColor, tolerance, mode); + SkAvoidXfermode::Mode mode = static_cast<SkAvoidXfermode::Mode>(modeHandle); + return reinterpret_cast<jlong>(new SkAvoidXfermode(opColor, tolerance, mode)); } - - static SkXfermode* pixelxor_create(JNIEnv* env, jobject, SkColor opColor) + + static jlong pixelxor_create(JNIEnv* env, jobject, jint opColor) { - return new SkPixelXorXfermode(opColor); + return reinterpret_cast<jlong>(new SkPixelXorXfermode(opColor)); } }; /////////////////////////////////////////////////////////////////////////////// static JNINativeMethod gXfermodeMethods[] = { - {"finalizer", "(I)V", (void*) SkXfermodeGlue::finalizer} + {"finalizer", "(J)V", (void*) SkXfermodeGlue::finalizer} }; static JNINativeMethod gAvoidMethods[] = { - {"nativeCreate", "(III)I", (void*) SkXfermodeGlue::avoid_create} + {"nativeCreate", "(III)J", (void*) SkXfermodeGlue::avoid_create} }; static JNINativeMethod gPixelXorMethods[] = { - {"nativeCreate", "(I)I", (void*) SkXfermodeGlue::pixelxor_create} + {"nativeCreate", "(I)J", (void*) SkXfermodeGlue::pixelxor_create} }; #include <android_runtime/AndroidRuntime.h> |