summaryrefslogtreecommitdiffstats
path: root/core/jni/android_graphics_Canvas.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2015-04-13 15:20:29 -0700
committerJohn Reck <jreck@google.com>2015-04-14 15:38:22 -0700
commitc294d128d03bc9a9982b273a82516c04583438cc (patch)
treefd6c7ae3a6a292caf48160f0c0c8cc82e4729225 /core/jni/android_graphics_Canvas.cpp
parent4fc266bbef6129b5cefc910f0680eb9d61794faf (diff)
downloadframeworks_base-c294d128d03bc9a9982b273a82516c04583438cc.zip
frameworks_base-c294d128d03bc9a9982b273a82516c04583438cc.tar.gz
frameworks_base-c294d128d03bc9a9982b273a82516c04583438cc.tar.bz2
A bunch more cleanups
Switch a few places to using android::canvas instead of SkCanvas as well which eliminated some JNI Change-Id: I8f98b56442a06362b82b984cd1bd3a92398d8dbc
Diffstat (limited to 'core/jni/android_graphics_Canvas.cpp')
-rw-r--r--core/jni/android_graphics_Canvas.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/core/jni/android_graphics_Canvas.cpp b/core/jni/android_graphics_Canvas.cpp
index a2c1609..50a1069 100644
--- a/core/jni/android_graphics_Canvas.cpp
+++ b/core/jni/android_graphics_Canvas.cpp
@@ -39,17 +39,22 @@ static void finalizer(JNIEnv* env, jobject clazz, jlong canvasHandle) {
}
// Native wrapper constructor used by Canvas(Bitmap)
-static jlong initRaster(JNIEnv* env, jobject, jlong bitmapHandle) {
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
+static jlong initRaster(JNIEnv* env, jobject, jobject jbitmap) {
+ SkBitmap bitmap;
+ if (jbitmap != NULL) {
+ GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap);
+ }
return reinterpret_cast<jlong>(Canvas::create_canvas(bitmap));
}
// Set the given bitmap as the new draw target (wrapped in a new SkCanvas),
// optionally copying canvas matrix & clip state.
-static void setBitmap(JNIEnv* env, jobject, jlong canvasHandle, jlong bitmapHandle,
- jboolean copyState) {
- SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
- get_canvas(canvasHandle)->setBitmap(bitmap, copyState);
+static void setBitmap(JNIEnv* env, jobject, jlong canvasHandle, jobject jbitmap) {
+ SkBitmap bitmap;
+ if (jbitmap != NULL) {
+ GraphicsJNI::getSkBitmap(env, jbitmap, &bitmap);
+ }
+ get_canvas(canvasHandle)->setBitmap(bitmap);
}
static jboolean isOpaque(JNIEnv*, jobject, jlong canvasHandle) {
@@ -658,8 +663,8 @@ static void freeTextLayoutCaches(JNIEnv* env, jobject) {
static JNINativeMethod gMethods[] = {
{"finalizer", "(J)V", (void*) CanvasJNI::finalizer},
- {"initRaster", "(J)J", (void*) CanvasJNI::initRaster},
- {"native_setBitmap", "(JJZ)V", (void*) CanvasJNI::setBitmap},
+ {"initRaster", "(Landroid/graphics/Bitmap;)J", (void*) CanvasJNI::initRaster},
+ {"native_setBitmap", "(JLandroid/graphics/Bitmap;)V", (void*) CanvasJNI::setBitmap},
{"native_isOpaque","(J)Z", (void*) CanvasJNI::isOpaque},
{"native_getWidth","(J)I", (void*) CanvasJNI::getWidth},
{"native_getHeight","(J)I", (void*) CanvasJNI::getHeight},