Chromium Code Reviews| 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 |
|
tomhudson
2015/08/24 20:10:25
What's up with the #if 0'd code?
hal.canary
2015/08/31 21:16:56
This is a test we should perform: does using a BBH
|
| + 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 |
| +} |