From 6062c5912dc79704b489fc8c289b78a400ed05ee Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Tue, 22 Feb 2011 13:55:04 -0500 Subject: [PATCH] Skia Merge (revision 808) This is a companion CL to the one found in /external/skia Change-Id: If81748545435cab20a5d8479329ab333cb973e16 --- core/jni/Android.mk | 1 - core/jni/android/graphics/Bitmap.cpp | 4 ++-- core/jni/android/graphics/Canvas.cpp | 2 +- core/jni/android/graphics/ColorFilter.cpp | 2 +- core/jni/android/graphics/DrawFilter.cpp | 2 +- core/jni/android/graphics/MaskFilter.cpp | 2 +- core/jni/android/graphics/PathEffect.cpp | 2 +- core/jni/android/graphics/Rasterizer.cpp | 2 +- core/jni/android/graphics/Shader.cpp | 2 +- core/jni/android/graphics/Xfermode.cpp | 2 +- core/jni/android_view_Surface.cpp | 2 +- core/jni/com_google_android_gles_jni_EGLImpl.cpp | 6 +++--- libs/hwui/DisplayListRenderer.h | 1 - libs/hwui/OpenGLRenderer.cpp | 3 +++ libs/hwui/ResourceCache.cpp | 16 ++++++++-------- libs/hwui/ShapeCache.h | 2 +- 16 files changed, 26 insertions(+), 25 deletions(-) diff --git a/core/jni/Android.mk b/core/jni/Android.mk index 41baca2bffb80..2ed938adc0aa8 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -183,7 +183,6 @@ LOCAL_SHARED_LIBRARIES := \ libgui \ libsurfaceflinger_client \ libcamera_client \ - libskiagl \ libskia \ libsqlite \ libdvm \ diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp index 1d961ec935997..4833df1c78ff1 100644 --- a/core/jni/android/graphics/Bitmap.cpp +++ b/core/jni/android/graphics/Bitmap.cpp @@ -378,12 +378,12 @@ static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) { jbyteArray buffer = GraphicsJNI::allocateJavaPixelRef(env, bitmap, ctable); if (NULL == buffer) { - ctable->safeUnref(); + SkSafeUnref(ctable); delete bitmap; return NULL; } - ctable->safeUnref(); + SkSafeUnref(ctable); size_t size = bitmap->getSize(); bitmap->lockPixels(); diff --git a/core/jni/android/graphics/Canvas.cpp b/core/jni/android/graphics/Canvas.cpp index 8944d479650e0..0cdb3578f0569 100644 --- a/core/jni/android/graphics/Canvas.cpp +++ b/core/jni/android/graphics/Canvas.cpp @@ -673,7 +673,7 @@ public: } SkShader* shader = SkShader::CreateBitmapShader(*bitmap, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode); - tmpPaint.setShader(shader)->safeUnref(); + SkSafeUnref(tmpPaint.setShader(shader)); canvas->drawVertices(SkCanvas::kTriangles_VertexMode, ptCount, verts, texs, (const SkColor*)colorA.ptr(), NULL, indices, diff --git a/core/jni/android/graphics/ColorFilter.cpp b/core/jni/android/graphics/ColorFilter.cpp index e2a959d1cd4dc..dd1177b907500 100644 --- a/core/jni/android/graphics/ColorFilter.cpp +++ b/core/jni/android/graphics/ColorFilter.cpp @@ -33,7 +33,7 @@ using namespace uirenderer; class SkColorFilterGlue { public: static void finalizer(JNIEnv* env, jobject clazz, SkColorFilter* obj, SkiaColorFilter* f) { - obj->safeUnref(); + SkSafeUnref(obj); // f == NULL when not !USE_OPENGL_RENDERER, so no need to delete outside the ifdef #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { diff --git a/core/jni/android/graphics/DrawFilter.cpp b/core/jni/android/graphics/DrawFilter.cpp index 496e7124bfa1f..2f9fe7ed3ff67 100644 --- a/core/jni/android/graphics/DrawFilter.cpp +++ b/core/jni/android/graphics/DrawFilter.cpp @@ -34,7 +34,7 @@ class SkDrawFilterGlue { public: static void finalizer(JNIEnv* env, jobject clazz, SkDrawFilter* obj) { - obj->safeUnref(); + SkSafeUnref(obj); } static SkDrawFilter* CreatePaintFlagsDF(JNIEnv* env, jobject clazz, diff --git a/core/jni/android/graphics/MaskFilter.cpp b/core/jni/android/graphics/MaskFilter.cpp index 455449e5349d1..d3f9b78fecc22 100644 --- a/core/jni/android/graphics/MaskFilter.cpp +++ b/core/jni/android/graphics/MaskFilter.cpp @@ -14,7 +14,7 @@ static void ThrowIAE_IfNull(JNIEnv* env, void* ptr) { class SkMaskFilterGlue { public: static void destructor(JNIEnv* env, jobject, SkMaskFilter* filter) { - filter->safeUnref(); + SkSafeUnref(filter); } static SkMaskFilter* createBlur(JNIEnv* env, jobject, float radius, int blurStyle) { diff --git a/core/jni/android/graphics/PathEffect.cpp b/core/jni/android/graphics/PathEffect.cpp index 0ecb004e0e2c8..cfa9ce44549b5 100644 --- a/core/jni/android/graphics/PathEffect.cpp +++ b/core/jni/android/graphics/PathEffect.cpp @@ -12,7 +12,7 @@ class SkPathEffectGlue { public: static void destructor(JNIEnv* env, jobject, SkPathEffect* effect) { - effect->safeUnref(); + SkSafeUnref(effect); } static SkPathEffect* Compose_constructor(JNIEnv* env, jobject, diff --git a/core/jni/android/graphics/Rasterizer.cpp b/core/jni/android/graphics/Rasterizer.cpp index db70b5758a9e7..4e1b36aee01cd 100644 --- a/core/jni/android/graphics/Rasterizer.cpp +++ b/core/jni/android/graphics/Rasterizer.cpp @@ -32,7 +32,7 @@ class SkRasterizerGlue { public: static void finalizer(JNIEnv* env, jobject clazz, SkRasterizer* obj) { - obj->safeUnref(); + SkSafeUnref(obj); } }; diff --git a/core/jni/android/graphics/Shader.cpp b/core/jni/android/graphics/Shader.cpp index 3efc41d2d0766..0ea8225c91f67 100644 --- a/core/jni/android/graphics/Shader.cpp +++ b/core/jni/android/graphics/Shader.cpp @@ -53,7 +53,7 @@ static int Color_HSVToColor(JNIEnv* env, jobject, int alpha, jfloatArray hsvArra static void Shader_destructor(JNIEnv* env, jobject o, SkShader* shader, SkiaShader* skiaShader) { - shader->safeUnref(); + SkSafeUnref(shader); // skiaShader == NULL when not !USE_OPENGL_RENDERER, so no need to delete it outside the ifdef #ifdef USE_OPENGL_RENDERER if (android::uirenderer::Caches::hasInstance()) { diff --git a/core/jni/android/graphics/Xfermode.cpp b/core/jni/android/graphics/Xfermode.cpp index 2b53d289b0d3a..976a91fe9b0cb 100644 --- a/core/jni/android/graphics/Xfermode.cpp +++ b/core/jni/android/graphics/Xfermode.cpp @@ -28,7 +28,7 @@ public: static void finalizer(JNIEnv* env, jobject, SkXfermode* obj) { - obj->safeUnref(); + SkSafeUnref(obj); } static SkXfermode* avoid_create(JNIEnv* env, jobject, SkColor opColor, diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index aa9c1078363ba..be66e9c4d5e97 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -451,7 +451,7 @@ class ScreenshotPixelRef : public SkPixelRef { public: ScreenshotPixelRef(SkColorTable* ctable) { fCTable = ctable; - ctable->safeRef(); + SkSafeRef(ctable); setImmutable(); } virtual ~ScreenshotPixelRef() { diff --git a/core/jni/com_google_android_gles_jni_EGLImpl.cpp b/core/jni/com_google_android_gles_jni_EGLImpl.cpp index 941ed6394714e..e7ea8c8f63dd8 100644 --- a/core/jni/com_google_android_gles_jni_EGLImpl.cpp +++ b/core/jni/com_google_android_gles_jni_EGLImpl.cpp @@ -290,7 +290,7 @@ static void jni_eglCreatePixmapSurface(JNIEnv *_env, jobject _this, jobject out_ return; } - ref->safeRef(); + SkSafeRef(ref); ref->lockPixels(); egl_native_pixmap_t pixmap; @@ -310,7 +310,7 @@ static void jni_eglCreatePixmapSurface(JNIEnv *_env, jobject _this, jobject out_ _env->SetIntField(out_sur, gSurface_NativePixelRefFieldID, (int)ref); } else { ref->unlockPixels(); - ref->safeUnref(); + SkSafeUnref(ref); } } @@ -430,7 +430,7 @@ static jboolean jni_eglDestroySurface(JNIEnv *_env, jobject _this, jobject displ gSurface_NativePixelRefFieldID)); if (ref) { ref->unlockPixels(); - ref->safeUnref(); + SkSafeUnref(ref); } } return eglDestroySurface(dpy, sur); diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h index f39f37f860eb1..e8f189db0f8da 100644 --- a/libs/hwui/DisplayListRenderer.h +++ b/libs/hwui/DisplayListRenderer.h @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 4a08f533df6f1..a0aea0066d269 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1982,6 +1982,9 @@ void OpenGLRenderer::getAlphaAndMode(SkPaint* paint, int* alpha, SkXfermode::Mod } SkXfermode::Mode OpenGLRenderer::getXfermode(SkXfermode* mode) { + /* In the future we should look at unifying the Porter-Duff modes and + * SkXferModes so that we can use SkXfermode::IsMode(xfer, &mode). + */ if (mode == NULL) { return SkXfermode::kSrcOver_Mode; } diff --git a/libs/hwui/ResourceCache.cpp b/libs/hwui/ResourceCache.cpp index 87fdfb5212a13..9aade5175c569 100644 --- a/libs/hwui/ResourceCache.cpp +++ b/libs/hwui/ResourceCache.cpp @@ -60,8 +60,8 @@ void ResourceCache::incrementRefcount(void* resource, ResourceType resourceType) } void ResourceCache::incrementRefcount(SkBitmap* bitmapResource) { - bitmapResource->pixelRef()->safeRef(); - bitmapResource->getColorTable()->safeRef(); + SkSafeRef(bitmapResource->pixelRef()); + SkSafeRef(bitmapResource->getColorTable()); incrementRefcount((void*)bitmapResource, kBitmap); } @@ -70,12 +70,12 @@ void ResourceCache::incrementRefcount(SkPath* pathResource) { } void ResourceCache::incrementRefcount(SkiaShader* shaderResource) { - shaderResource->getSkShader()->safeRef(); + SkSafeRef(shaderResource->getSkShader()); incrementRefcount((void*) shaderResource, kShader); } void ResourceCache::incrementRefcount(SkiaColorFilter* filterResource) { - filterResource->getSkColorFilter()->safeRef(); + SkSafeRef(filterResource->getSkColorFilter()); incrementRefcount((void*) filterResource, kColorFilter); } @@ -93,8 +93,8 @@ void ResourceCache::decrementRefcount(void* resource) { } void ResourceCache::decrementRefcount(SkBitmap* bitmapResource) { - bitmapResource->pixelRef()->safeUnref(); - bitmapResource->getColorTable()->safeUnref(); + SkSafeUnref(bitmapResource->pixelRef()); + SkSafeUnref(bitmapResource->getColorTable()); decrementRefcount((void*) bitmapResource); } @@ -103,12 +103,12 @@ void ResourceCache::decrementRefcount(SkPath* pathResource) { } void ResourceCache::decrementRefcount(SkiaShader* shaderResource) { - shaderResource->getSkShader()->safeUnref(); + SkSafeUnref(shaderResource->getSkShader()); decrementRefcount((void*) shaderResource); } void ResourceCache::decrementRefcount(SkiaColorFilter* filterResource) { - filterResource->getSkColorFilter()->safeUnref(); + SkSafeUnref(filterResource->getSkColorFilter()); decrementRefcount((void*) filterResource); } diff --git a/libs/hwui/ShapeCache.h b/libs/hwui/ShapeCache.h index e53546605f138..4c626dd493037 100644 --- a/libs/hwui/ShapeCache.h +++ b/libs/hwui/ShapeCache.h @@ -571,7 +571,7 @@ PathTexture* ShapeCache::addTexture(const Entry& entry, const SkPath *pat pathPaint.setMaskFilter(NULL); pathPaint.setShader(NULL); SkXfermode* mode = SkXfermode::Create(SkXfermode::kSrc_Mode); - pathPaint.setXfermode(mode)->safeUnref(); + SkSafeUnref(pathPaint.setXfermode(mode)); SkCanvas canvas(bitmap); canvas.translate(-bounds.fLeft + offset, -bounds.fTop + offset);