diff options
author | John Reck <jreck@google.com> | 2015-04-22 09:04:45 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2015-04-22 09:34:34 -0700 |
commit | c1b33d665c8caf5760f68c45c6ca0baa649b832a (patch) | |
tree | 9c89975587ac76b4d10589fdc15d7af4baa22dbf /core/jni/android_view_Surface.cpp | |
parent | bb2979d61c9cabd6f0476cc9e2121616d8001567 (diff) | |
download | frameworks_base-c1b33d665c8caf5760f68c45c6ca0baa649b832a.zip frameworks_base-c1b33d665c8caf5760f68c45c6ca0baa649b832a.tar.gz frameworks_base-c1b33d665c8caf5760f68c45c6ca0baa649b832a.tar.bz2 |
GraphicsJNI Canvas cleanup
Change-Id: I72e142986a8bc9f464c1951b6b5187919de3462e
Diffstat (limited to 'core/jni/android_view_Surface.cpp')
-rw-r--r-- | core/jni/android_view_Surface.cpp | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index 4fcb361..c4cd7ff 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -73,11 +73,6 @@ static struct { jfieldID bottom; } gRectClassInfo; -static struct { - jfieldID mSurfaceFormat; - jmethodID setNativeBitmap; -} gCanvasClassInfo; - // ---------------------------------------------------------------------------- // this is just a pointer we use to pass to inc/decStrong @@ -318,9 +313,6 @@ static jlong nativeLockCanvas(JNIEnv* env, jclass clazz, return 0; } - // Associate a SkCanvas object to this surface - env->SetIntField(canvasObj, gCanvasClassInfo.mSurfaceFormat, outBuffer.format); - SkImageInfo info = SkImageInfo::Make(outBuffer.width, outBuffer.height, convertPixelFormat(outBuffer.format), kPremul_SkAlphaType); @@ -338,12 +330,12 @@ static jlong nativeLockCanvas(JNIEnv* env, jclass clazz, bitmap.setPixels(NULL); } - env->CallVoidMethod(canvasObj, gCanvasClassInfo.setNativeBitmap, - reinterpret_cast<jlong>(&bitmap)); + Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvasObj); + nativeCanvas->setBitmap(bitmap); if (dirtyRectPtr) { - SkCanvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvasObj); - nativeCanvas->clipRect( SkRect::Make(reinterpret_cast<const SkIRect&>(dirtyRect)) ); + nativeCanvas->clipRect(dirtyRect.left, dirtyRect.top, + dirtyRect.right, dirtyRect.bottom); } if (dirtyRectObj) { @@ -369,7 +361,8 @@ static void nativeUnlockCanvasAndPost(JNIEnv* env, jclass clazz, } // detach the canvas from the surface - env->CallVoidMethod(canvasObj, gCanvasClassInfo.setNativeBitmap, (jlong)0); + Canvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvasObj); + nativeCanvas->setBitmap(SkBitmap()); // unlock surface status_t err = surface->unlockAndPost(); @@ -564,10 +557,6 @@ int register_android_view_Surface(JNIEnv* env) gSurfaceClassInfo.clazz, "mLock", "Ljava/lang/Object;"); gSurfaceClassInfo.ctor = GetMethodIDOrDie(env, gSurfaceClassInfo.clazz, "<init>", "(J)V"); - clazz = FindClassOrDie(env, "android/graphics/Canvas"); - gCanvasClassInfo.mSurfaceFormat = GetFieldIDOrDie(env, clazz, "mSurfaceFormat", "I"); - gCanvasClassInfo.setNativeBitmap = GetMethodIDOrDie(env, clazz, "setNativeBitmap", "(J)V"); - clazz = FindClassOrDie(env, "android/graphics/Rect"); gRectClassInfo.left = GetFieldIDOrDie(env, clazz, "left", "I"); gRectClassInfo.top = GetFieldIDOrDie(env, clazz, "top", "I"); |