diff options
Diffstat (limited to 'core/jni/android/graphics/ColorFilter.cpp')
-rw-r--r-- | core/jni/android/graphics/ColorFilter.cpp | 67 |
1 files changed, 4 insertions, 63 deletions
diff --git a/core/jni/android/graphics/ColorFilter.cpp b/core/jni/android/graphics/ColorFilter.cpp index da40acf..09589bd 100644 --- a/core/jni/android/graphics/ColorFilter.cpp +++ b/core/jni/android/graphics/ColorFilter.cpp @@ -23,7 +23,6 @@ #include "SkColorMatrixFilter.h" #include "SkPorterDuff.h" -#include <SkiaColorFilter.h> #include <Caches.h> namespace android { @@ -32,64 +31,9 @@ using namespace uirenderer; class SkColorFilterGlue { public: - static void finalizer(JNIEnv* env, jobject clazz, jlong objHandle, jlong fHandle) { - SkColorFilter* obj = reinterpret_cast<SkColorFilter *>(objHandle); - SkiaColorFilter* f = reinterpret_cast<SkiaColorFilter *>(fHandle); - if (obj) SkSafeUnref(obj); - // f == NULL when not !USE_OPENGL_RENDERER, so no need to delete outside the ifdef -#ifdef USE_OPENGL_RENDERER - if (f && android::uirenderer::Caches::hasInstance()) { - android::uirenderer::Caches::getInstance().resourceCache.destructor(f); - } else { - delete f; - } -#endif - } - - static jlong glCreatePorterDuffFilter(JNIEnv* env, jobject, jlong skFilterHandle, - jint srcColor, jint modeHandle) { - SkColorFilter *skFilter = reinterpret_cast<SkColorFilter *>(skFilterHandle); - SkPorterDuff::Mode mode = static_cast<SkPorterDuff::Mode>(modeHandle); -#ifdef USE_OPENGL_RENDERER - return reinterpret_cast<jlong>(new SkiaBlendFilter(skFilter, srcColor, SkPorterDuff::ToXfermodeMode(mode))); -#else - return NULL; -#endif - } - - static jlong glCreateLightingFilter(JNIEnv* env, jobject, jlong skFilterHandle, - jint mul, jint add) { - SkColorFilter *skFilter = reinterpret_cast<SkColorFilter *>(skFilterHandle); -#ifdef USE_OPENGL_RENDERER - return reinterpret_cast<jlong>(new SkiaLightingFilter(skFilter, mul, add)); -#else - return NULL; -#endif - } - - static jlong glCreateColorMatrixFilter(JNIEnv* env, jobject, jlong skFilterHandle, - jfloatArray jarray) { - SkColorFilter *skFilter = reinterpret_cast<SkColorFilter *>(skFilterHandle); -#ifdef USE_OPENGL_RENDERER - AutoJavaFloatArray autoArray(env, jarray, 20); - const float* src = autoArray.ptr(); - - float* colorMatrix = new float[16]; - memcpy(colorMatrix, src, 4 * sizeof(float)); - memcpy(&colorMatrix[4], &src[5], 4 * sizeof(float)); - memcpy(&colorMatrix[8], &src[10], 4 * sizeof(float)); - memcpy(&colorMatrix[12], &src[15], 4 * sizeof(float)); - - float* colorVector = new float[4]; - colorVector[0] = src[4]; - colorVector[1] = src[9]; - colorVector[2] = src[14]; - colorVector[3] = src[19]; - - return reinterpret_cast<jlong>(new SkiaColorMatrixFilter(skFilter, colorMatrix, colorVector)); -#else - return NULL; -#endif + static void finalizer(JNIEnv* env, jobject clazz, jlong skFilterHandle) { + SkColorFilter* filter = reinterpret_cast<SkColorFilter *>(skFilterHandle); + if (filter) SkSafeUnref(filter); } static jlong CreatePorterDuffFilter(JNIEnv* env, jobject, jint srcColor, @@ -119,22 +63,19 @@ public: }; static JNINativeMethod colorfilter_methods[] = { - {"destroyFilter", "(JJ)V", (void*) SkColorFilterGlue::finalizer} + {"destroyFilter", "(J)V", (void*) SkColorFilterGlue::finalizer} }; static JNINativeMethod porterduff_methods[] = { { "native_CreatePorterDuffFilter", "(II)J", (void*) SkColorFilterGlue::CreatePorterDuffFilter }, - { "nCreatePorterDuffFilter", "(JII)J", (void*) SkColorFilterGlue::glCreatePorterDuffFilter } }; static JNINativeMethod lighting_methods[] = { { "native_CreateLightingFilter", "(II)J", (void*) SkColorFilterGlue::CreateLightingFilter }, - { "nCreateLightingFilter", "(JII)J", (void*) SkColorFilterGlue::glCreateLightingFilter }, }; static JNINativeMethod colormatrix_methods[] = { { "nativeColorMatrixFilter", "([F)J", (void*) SkColorFilterGlue::CreateColorMatrixFilter }, - { "nColorMatrixFilter", "(J[F)J", (void*) SkColorFilterGlue::glCreateColorMatrixFilter } }; #define REG(env, name, array) \ |