1/*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "org_skia_canvasproof_CreateSkiaPicture.h"
9#include "JavaInputStream.h"
10#include "SkPicture.h"
11#include "SkPictureRecorder.h"
12
13/*
14 * Class:     org_skia_canvasproof_CreateSkiaPicture
15 * Method:    delete
16 * Signature: (J)V
17 */
18JNIEXPORT void JNICALL Java_org_skia_canvasproof_CreateSkiaPicture_deleteImpl(
19        JNIEnv* env, jclass clazz, jlong ptr) {
20    SkSafeUnref(reinterpret_cast<SkPicture*>(ptr));
21}
22
23/*
24 * Class:     org_skia_canvasproof_CreateSkiaPicture
25 * Method:    createImpl
26 * Signature: (Ljava/io/InputStream;[B)J
27 */
28JNIEXPORT jlong JNICALL Java_org_skia_canvasproof_CreateSkiaPicture_createImpl
29  (JNIEnv* env, jclass clazz, jobject inputStream, jbyteArray buffer) {
30    JavaInputStream stream(env, buffer, inputStream);
31    #if 0
32    SkAutoTUnref<SkPicture> p(SkPicture::CreateFromStream(&stream));
33    if (!p) { return 0; }
34    SkPictureRecorder recorder;
35    SkRect bounds = p->cullRect();
36    SkRTreeFactory bbh;
37    recorder.beginRecording(bounds, &bbh)->drawPicture(p);
38    return reinterpret_cast<long>(recorder.endRecordingAsPicture());
39    #else
40    return reinterpret_cast<long>(SkPicture::CreateFromStream(&stream));
41    #endif
42}
43