diff options
| author | John Reck <jreck@google.com> | 2015-04-13 19:20:58 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-13 19:20:59 +0000 |
| commit | 073f36c6c1bc937a55393f7fe9a21b95e822bfda (patch) | |
| tree | b893a2628d6bf80f5c41a0941b38809a741e6657 /core/jni/android/graphics/Graphics.cpp | |
| parent | bed238fcea7c5dc5f0ad6f14d1b585b0947a4cdc (diff) | |
| parent | a771b9861d11671c780092d35c0062eeefcf37c0 (diff) | |
| download | frameworks_base-073f36c6c1bc937a55393f7fe9a21b95e822bfda.zip frameworks_base-073f36c6c1bc937a55393f7fe9a21b95e822bfda.tar.gz frameworks_base-073f36c6c1bc937a55393f7fe9a21b95e822bfda.tar.bz2 | |
Merge "Change how Java Bitmaps are accessed in a few places"
Diffstat (limited to 'core/jni/android/graphics/Graphics.cpp')
| -rw-r--r-- | core/jni/android/graphics/Graphics.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp index 0747969..f0bd5dd 100644 --- a/core/jni/android/graphics/Graphics.cpp +++ b/core/jni/android/graphics/Graphics.cpp @@ -338,7 +338,7 @@ SkColorType GraphicsJNI::legacyBitmapConfigToColorType(jint legacyConfig) { return static_cast<SkColorType>(gConfig2ColorType[legacyConfig]); } -SkBitmap* GraphicsJNI::getSkBitmap(JNIEnv* env, jobject bitmap) { +SkBitmap* GraphicsJNI::getSkBitmapDeprecated(JNIEnv* env, jobject bitmap) { SkASSERT(env); SkASSERT(bitmap); SkASSERT(env->IsInstanceOf(bitmap, gBitmap_class)); @@ -348,6 +348,21 @@ SkBitmap* GraphicsJNI::getSkBitmap(JNIEnv* env, jobject bitmap) { return b; } +void GraphicsJNI::getSkBitmap(JNIEnv* env, jobject bitmap, SkBitmap* outBitmap) { + SkPixelRef* pixelRef = getSkPixelRef(env, bitmap); + // TODO: pixelRef->rowBytes() is only valid if the pixels are locked + // (which is currently always true on android), switch this to querying + // from the wrapper once that exists instead + outBitmap->setInfo(pixelRef->info(), pixelRef->rowBytes()); + outBitmap->setPixelRef(pixelRef); +} + +SkPixelRef* GraphicsJNI::getSkPixelRef(JNIEnv* env, jobject bitmap) { + jlong bitmapHandle = env->GetLongField(bitmap, gBitmap_skBitmapPtr); + SkBitmap* b = reinterpret_cast<SkBitmap*>(bitmapHandle); + return b->pixelRef(); +} + SkColorType GraphicsJNI::getNativeBitmapColorType(JNIEnv* env, jobject jconfig) { SkASSERT(env); if (NULL == jconfig) { |
