diff options
| author | Robert Phillips <robertphillips@google.com> | 2014-04-23 12:31:37 -0400 |
|---|---|---|
| committer | Leon Scroggins III <scroggo@google.com> | 2014-06-11 18:27:48 -0400 |
| commit | b59508fce51b23f0201f4dcba7e4f18bab4f9d1a (patch) | |
| tree | 15b9ca3cd3e470220a9795bc32cf1ac9bba7cf6d /core/jni/android/graphics/Picture.cpp | |
| parent | 85a7bb169b70cf80779a69d50a4188fcf0612f34 (diff) | |
| download | frameworks_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.cpp | 38 |
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(); } }; |
