summaryrefslogtreecommitdiffstats
path: root/core/jni/android_view_Surface.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2015-04-22 09:04:45 -0700
committerJohn Reck <jreck@google.com>2015-04-22 09:34:34 -0700
commitc1b33d665c8caf5760f68c45c6ca0baa649b832a (patch)
tree9c89975587ac76b4d10589fdc15d7af4baa22dbf /core/jni/android_view_Surface.cpp
parentbb2979d61c9cabd6f0476cc9e2121616d8001567 (diff)
downloadframeworks_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.cpp23
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");