Index: platform_tools/android/apps/canvasproof/src/main/jni/org_skia_canvasproof_CreateSkiaPicture.cpp |
diff --git a/platform_tools/android/apps/canvasproof/src/main/jni/org_skia_canvasproof_CreateSkiaPicture.cpp b/platform_tools/android/apps/canvasproof/src/main/jni/org_skia_canvasproof_CreateSkiaPicture.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c5d9759e54b64430cb5c9bf7ddbdd6bef1a4418b |
--- /dev/null |
+++ b/platform_tools/android/apps/canvasproof/src/main/jni/org_skia_canvasproof_CreateSkiaPicture.cpp |
@@ -0,0 +1,42 @@ |
+/* |
+ * Copyright 2015 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "org_skia_canvasproof_CreateSkiaPicture.h" |
+#include "JavaInputStream.h" |
+#include "SkPicture.h" |
+#include "SkPictureRecorder.h" |
+ |
+/* |
+ * Class: org_skia_canvasproof_CreateSkiaPicture |
+ * Method: delete |
+ * Signature: (J)V |
+ */ |
+JNIEXPORT void JNICALL Java_org_skia_canvasproof_CreateSkiaPicture_deleteImpl( |
+ JNIEnv* env, jclass clazz, jlong ptr) { |
+ SkSafeUnref(reinterpret_cast<SkPicture*>(ptr)); |
+} |
+ |
+/* |
+ * Class: org_skia_canvasproof_CreateSkiaPicture |
+ * Method: createImpl |
+ * Signature: (Ljava/io/InputStream;[B)J |
+ */ |
+JNIEXPORT jlong JNICALL Java_org_skia_canvasproof_CreateSkiaPicture_createImpl |
+ (JNIEnv* env, jclass clazz, jobject inputStream, jbyteArray buffer) { |
+ JavaInputStream stream(env, buffer, inputStream); |
+ #if 0 |
+ SkAutoTUnref<SkPicture> p(SkPicture::CreateFromStream(&stream)); |
+ if (!p) { return 0; } |
+ SkPictureRecorder recorder; |
+ SkRect bounds = p->cullRect(); |
+ SkRTreeFactory bbh; |
+ recorder.beginRecording(bounds, &bbh)->drawPicture(p); |
+ return reinterpret_cast<long>(recorder.endRecordingAsPicture()); |
+ #else |
+ return reinterpret_cast<long>(SkPicture::CreateFromStream(&stream)); |
+ #endif |
+} |