diff options
author | Patrick Dubroy <dubroy@google.com> | 2010-12-01 11:23:13 -0800 |
---|---|---|
committer | Patrick Dubroy <dubroy@google.com> | 2010-12-14 16:50:50 -0800 |
commit | e4ac2d6b5723c95e648c489b187ddde449452c13 (patch) | |
tree | a783470220e1840761dc6696f3e5f4cc7870054b /core/jni/android/graphics/BitmapRegionDecoder.cpp | |
parent | 89f8d63a991f2dc4a961ad92ab5bb6b6c1ecd60f (diff) | |
download | frameworks_base-e4ac2d6b5723c95e648c489b187ddde449452c13.zip frameworks_base-e4ac2d6b5723c95e648c489b187ddde449452c13.tar.gz frameworks_base-e4ac2d6b5723c95e648c489b187ddde449452c13.tar.bz2 |
Allocate bitmap backing buffers in the Java heap.
Change-Id: I60f6ccff13357c1c518e9d56b02fe0171637edd1
Diffstat (limited to 'core/jni/android/graphics/BitmapRegionDecoder.cpp')
-rw-r--r-- | core/jni/android/graphics/BitmapRegionDecoder.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp index 91a8202..1e00b71 100644 --- a/core/jni/android/graphics/BitmapRegionDecoder.cpp +++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp @@ -79,7 +79,7 @@ static jobject doBuildTileIndex(JNIEnv* env, SkStream* stream) { return nullObjectReturn("SkImageDecoder::Factory returned null"); } - JavaPixelAllocator *javaAllocator = new JavaPixelAllocator(env, true); + JavaPixelAllocator *javaAllocator = new JavaPixelAllocator(env); decoder->setAllocator(javaAllocator); JavaMemoryUsageReporter *javaMemoryReporter = new JavaMemoryUsageReporter(env); decoder->setReporter(javaMemoryReporter); @@ -241,15 +241,16 @@ static jobject nativeDecodeRegion(JNIEnv* env, jobject, SkBitmapRegionDecoder *b getMimeTypeString(env, decoder->getFormat())); } - // detach bitmap from its autotdeleter, since we want to own it now + // detach bitmap from its autodeleter, since we want to own it now adb.detach(); - SkPixelRef* pr; - pr = bitmap->pixelRef(); + SkPixelRef* pr = bitmap->pixelRef(); // promise we will never change our pixels (great for sharing and pictures) pr->setImmutable(); + // now create the java bitmap - return GraphicsJNI::createBitmap(env, bitmap, false, NULL); + jbyteArray buff = ((AndroidPixelRef*) pr)->getStorageObj(); + return GraphicsJNI::createBitmap(env, bitmap, buff, false, NULL, -1); } static int nativeGetHeight(JNIEnv* env, jobject, SkBitmapRegionDecoder *brd) { |