Loading core/jni/android/graphics/Bitmap.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -254,7 +254,9 @@ static jobject Bitmap_copy(JNIEnv* env, jobject, const SkBitmap* src, static void Bitmap_destructor(JNIEnv* env, jobject, SkBitmap* bitmap) { #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { android::uirenderer::Caches::getInstance().textureCache.remove(bitmap); } #endif delete bitmap; } Loading core/jni/android/graphics/Path.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -26,12 +26,19 @@ #include "SkPath.h" #include <Caches.h> namespace android { class SkPathGlue { public: static void finalizer(JNIEnv* env, jobject clazz, SkPath* obj) { #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { android::uirenderer::Caches::getInstance().pathCache.remove(obj); } #endif delete obj; } Loading core/jni/android/graphics/Shader.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include "SkXfermode.h" #include <SkiaShader.h> #include <Caches.h> using namespace android::uirenderer; Loading Loading @@ -52,6 +53,11 @@ static int Color_HSVToColor(JNIEnv* env, jobject, int alpha, jfloatArray hsvArra static void Shader_destructor(JNIEnv* env, jobject o, SkShader* shader, SkiaShader* skiaShader) { #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { android::uirenderer::Caches::getInstance().gradientCache.remove(shader); } #endif delete skiaShader; shader->safeUnref(); } Loading include/utils/Singleton.h +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,11 @@ public: return *instance; } static bool hasInstance() { Mutex::Autolock _l(sLock); return sInstance != 0; } protected: ~Singleton() { }; Singleton() { }; Loading libs/hwui/Caches.h +3 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,9 @@ #ifndef ANDROID_UI_CACHES_H #define ANDROID_UI_CACHES_H #ifndef LOG_TAG #define LOG_TAG "OpenGLRenderer" #endif #include <utils/Singleton.h> Loading Loading
core/jni/android/graphics/Bitmap.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -254,7 +254,9 @@ static jobject Bitmap_copy(JNIEnv* env, jobject, const SkBitmap* src, static void Bitmap_destructor(JNIEnv* env, jobject, SkBitmap* bitmap) { #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { android::uirenderer::Caches::getInstance().textureCache.remove(bitmap); } #endif delete bitmap; } Loading
core/jni/android/graphics/Path.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -26,12 +26,19 @@ #include "SkPath.h" #include <Caches.h> namespace android { class SkPathGlue { public: static void finalizer(JNIEnv* env, jobject clazz, SkPath* obj) { #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { android::uirenderer::Caches::getInstance().pathCache.remove(obj); } #endif delete obj; } Loading
core/jni/android/graphics/Shader.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include "SkXfermode.h" #include <SkiaShader.h> #include <Caches.h> using namespace android::uirenderer; Loading Loading @@ -52,6 +53,11 @@ static int Color_HSVToColor(JNIEnv* env, jobject, int alpha, jfloatArray hsvArra static void Shader_destructor(JNIEnv* env, jobject o, SkShader* shader, SkiaShader* skiaShader) { #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { android::uirenderer::Caches::getInstance().gradientCache.remove(shader); } #endif delete skiaShader; shader->safeUnref(); } Loading
include/utils/Singleton.h +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,11 @@ public: return *instance; } static bool hasInstance() { Mutex::Autolock _l(sLock); return sInstance != 0; } protected: ~Singleton() { }; Singleton() { }; Loading
libs/hwui/Caches.h +3 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,9 @@ #ifndef ANDROID_UI_CACHES_H #define ANDROID_UI_CACHES_H #ifndef LOG_TAG #define LOG_TAG "OpenGLRenderer" #endif #include <utils/Singleton.h> Loading