summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2015-05-04 14:34:38 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-04 14:34:39 +0000
commit1641c0cb0b6baf313c82846fe4f64007078c604f (patch)
tree0bb708048847af2e31dccd2361a5e3cc95fabca0 /core
parent335f043bdb20f3528f486ad91eb9e1fdf8f673ab (diff)
parentc6e2e8ff474ae44bab5b9eb665851118abd27b68 (diff)
downloadframeworks_base-1641c0cb0b6baf313c82846fe4f64007078c604f.zip
frameworks_base-1641c0cb0b6baf313c82846fe4f64007078c604f.tar.gz
frameworks_base-1641c0cb0b6baf313c82846fe4f64007078c604f.tar.bz2
Merge "Move AssetAtlas off of SkBitmap*" into mnc-dev
Diffstat (limited to 'core')
-rw-r--r--core/java/android/view/ThreadedRenderer.java28
-rwxr-xr-xcore/jni/android/graphics/Bitmap.cpp8
2 files changed, 8 insertions, 28 deletions
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 390d81d..91e6d68 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -460,8 +460,6 @@ public class ThreadedRenderer extends HardwareRenderer {
if (buffer != null) {
long[] map = atlas.getMap();
if (map != null) {
- // TODO Remove after fixing b/15425820
- validateMap(context, map);
nSetAtlas(renderProxy, buffer, map);
}
// If IAssetAtlas is not the same class as the IBinder
@@ -476,32 +474,6 @@ public class ThreadedRenderer extends HardwareRenderer {
Log.w(LOG_TAG, "Could not acquire atlas", e);
}
}
-
- private static void validateMap(Context context, long[] map) {
- Log.d("Atlas", "Validating map...");
- HashSet<Long> preloadedPointers = new HashSet<Long>();
-
- // We only care about drawables that hold bitmaps
- final Resources resources = context.getResources();
- final LongSparseArray<Drawable.ConstantState> drawables = resources.getPreloadedDrawables();
-
- final int count = drawables.size();
- ArrayList<Bitmap> tmpList = new ArrayList<Bitmap>();
- for (int i = 0; i < count; i++) {
- drawables.valueAt(i).addAtlasableBitmaps(tmpList);
- for (int j = 0; j < tmpList.size(); j++) {
- preloadedPointers.add(tmpList.get(j).getSkBitmap());
- }
- tmpList.clear();
- }
-
- for (int i = 0; i < map.length; i += 4) {
- if (!preloadedPointers.contains(map[i])) {
- Log.w("Atlas", String.format("Pointer 0x%X, not in getPreloadedDrawables?", map[i]));
- map[i] = 0;
- }
- }
- }
}
static native void setupShadersDiskCache(String cacheFile);
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 7a934bd..5c95f8a 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -857,6 +857,13 @@ static void Bitmap_prepareToDraw(JNIEnv* env, jobject, jlong bitmapHandle) {
bitmap->unlockPixels();
}
+static jlong Bitmap_refPixelRef(JNIEnv* env, jobject, jlong bitmapHandle) {
+ SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
+ SkPixelRef* pixelRef = bitmap ? bitmap->pixelRef() : nullptr;
+ SkSafeRef(pixelRef);
+ return reinterpret_cast<jlong>(pixelRef);
+}
+
///////////////////////////////////////////////////////////////////////////////
static JNINativeMethod gBitmapMethods[] = {
@@ -896,6 +903,7 @@ static JNINativeMethod gBitmapMethods[] = {
(void*)Bitmap_copyPixelsFromBuffer },
{ "nativeSameAs", "(JJ)Z", (void*)Bitmap_sameAs },
{ "nativePrepareToDraw", "(J)V", (void*)Bitmap_prepareToDraw },
+ { "nativeRefPixelRef", "(J)J", (void*)Bitmap_refPixelRef },
};
int register_android_graphics_Bitmap(JNIEnv* env)