summaryrefslogtreecommitdiffstats
path: root/core/jni/android/graphics/Picture.cpp
diff options
context:
space:
mode:
authorRobert Phillips <robertphillips@google.com>2014-04-23 12:31:37 -0400
committerLeon Scroggins III <scroggo@google.com>2014-06-11 18:27:48 -0400
commitb59508fce51b23f0201f4dcba7e4f18bab4f9d1a (patch)
tree15b9ca3cd3e470220a9795bc32cf1ac9bba7cf6d /core/jni/android/graphics/Picture.cpp
parent85a7bb169b70cf80779a69d50a4188fcf0612f34 (diff)
downloadframeworks_base-b59508fce51b23f0201f4dcba7e4f18bab4f9d1a.zip
frameworks_base-b59508fce51b23f0201f4dcba7e4f18bab4f9d1a.tar.gz
frameworks_base-b59508fce51b23f0201f4dcba7e4f18bab4f9d1a.tar.bz2
Changes to framework for ToT Skia.
Consists of 3 cherry-pick from changes by robertphillips@google.com in master-skia: ----------------------------------------------------------------------- New AndroidPicture wrapper class Address code review comments & use new SkPictureRecorder::partialReplay entry point Addressing code review issues Switch MakePartialCopy to makePartialCopy Conflicts: core/jni/android/graphics/Picture.cpp Ie530ab15b3d549f0ecfb0ecc131f9144a7b72a91 Remove AndroidPicture from GraphicsJNI and split into .h and .cpp ----------------------------------------------------------------------- Fix lingering legacy picture recording behavior Address code review issues Iaf870c2c400dbe70dc32d6d445574904f5ea718f ----------------------------------------------------------------------- Update Android to new SkCanvas::drawPicture interface As of Skia 9b14f26d (Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer) - https://codereview.chromium.org/313613004) SkCanvas::drawPicture has an alternate signature. The old entry point is deprecated. I63395da61ecc3b58bfd2bc094752081f4b2f7535 ----------------------------------------------------------------------- Change-Id: I041133aeb5639abd853370e512acf93870f82aea
Diffstat (limited to 'core/jni/android/graphics/Picture.cpp')
-rw-r--r--core/jni/android/graphics/Picture.cpp38
1 files changed, 18 insertions, 20 deletions
diff --git a/core/jni/android/graphics/Picture.cpp b/core/jni/android/graphics/Picture.cpp
index a8a3dae..0683f73 100644
--- a/core/jni/android/graphics/Picture.cpp
+++ b/core/jni/android/graphics/Picture.cpp
@@ -17,9 +17,9 @@
#include "jni.h"
#include "GraphicsJNI.h"
#include <android_runtime/AndroidRuntime.h>
+#include "AndroidPicture.h"
#include "SkCanvas.h"
-#include "SkPicture.h"
#include "SkStream.h"
#include "SkTemplates.h"
#include "CreateJavaOutputStreamAdaptor.h"
@@ -29,45 +29,41 @@ namespace android {
class SkPictureGlue {
public:
static jlong newPicture(JNIEnv* env, jobject, jlong srcHandle) {
- const SkPicture* src = reinterpret_cast<SkPicture*>(srcHandle);
- if (src) {
- return reinterpret_cast<jlong>(new SkPicture(*src));
- } else {
- return reinterpret_cast<jlong>(new SkPicture);
- }
+ const AndroidPicture* src = reinterpret_cast<AndroidPicture*>(srcHandle);
+ return reinterpret_cast<jlong>(new AndroidPicture(src));
}
static jlong deserialize(JNIEnv* env, jobject, jobject jstream,
jbyteArray jstorage) {
- SkPicture* picture = NULL;
+ AndroidPicture* picture = NULL;
SkStream* strm = CreateJavaInputStreamAdaptor(env, jstream, jstorage);
if (strm) {
- picture = SkPicture::CreateFromStream(strm);
+ picture = AndroidPicture::CreateFromStream(strm);
delete strm;
}
return reinterpret_cast<jlong>(picture);
}
static void killPicture(JNIEnv* env, jobject, jlong pictureHandle) {
- SkPicture* picture = reinterpret_cast<SkPicture*>(pictureHandle);
+ AndroidPicture* picture = reinterpret_cast<AndroidPicture*>(pictureHandle);
SkASSERT(picture);
- picture->unref();
+ delete picture;
}
static void draw(JNIEnv* env, jobject, jlong canvasHandle,
jlong pictureHandle) {
SkCanvas* canvas = GraphicsJNI::getNativeCanvas(canvasHandle);
- SkPicture* picture = reinterpret_cast<SkPicture*>(pictureHandle);
+ AndroidPicture* picture = reinterpret_cast<AndroidPicture*>(pictureHandle);
SkASSERT(canvas);
SkASSERT(picture);
picture->draw(canvas);
}
static jboolean serialize(JNIEnv* env, jobject, jlong pictureHandle,
- jobject jstream, jbyteArray jstorage) {
- SkPicture* picture = reinterpret_cast<SkPicture*>(pictureHandle);
+ jobject jstream, jbyteArray jstorage) {
+ AndroidPicture* picture = reinterpret_cast<AndroidPicture*>(pictureHandle);
SkWStream* strm = CreateJavaOutputStreamAdaptor(env, jstream, jstorage);
-
+
if (NULL != strm) {
picture->serialize(strm);
delete strm;
@@ -78,19 +74,21 @@ public:
static jint getWidth(JNIEnv* env, jobject jpic) {
NPE_CHECK_RETURN_ZERO(env, jpic);
- int width = GraphicsJNI::getNativePicture(env, jpic)->width();
+ AndroidPicture* pict = GraphicsJNI::getNativePicture(env, jpic);
+ int width = pict->width();
return static_cast<jint>(width);
}
static jint getHeight(JNIEnv* env, jobject jpic) {
NPE_CHECK_RETURN_ZERO(env, jpic);
- int height = GraphicsJNI::getNativePicture(env, jpic)->height();
+ AndroidPicture* pict = GraphicsJNI::getNativePicture(env, jpic);
+ int height = pict->height();
return static_cast<jint>(height);
}
static jlong beginRecording(JNIEnv* env, jobject, jlong pictHandle,
- jint w, jint h) {
- SkPicture* pict = reinterpret_cast<SkPicture*>(pictHandle);
+ jint w, jint h) {
+ AndroidPicture* pict = reinterpret_cast<AndroidPicture*>(pictHandle);
// beginRecording does not ref its return value, it just returns it.
SkCanvas* canvas = pict->beginRecording(w, h);
// the java side will wrap this guy in a Canvas.java, which will call
@@ -101,7 +99,7 @@ public:
}
static void endRecording(JNIEnv* env, jobject, jlong pictHandle) {
- SkPicture* pict = reinterpret_cast<SkPicture*>(pictHandle);
+ AndroidPicture* pict = reinterpret_cast<AndroidPicture*>(pictHandle);
pict->endRecording();
}
};