aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/CreateSkiaPicture.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/CreateSkiaPicture.java')
-rw-r--r--platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/CreateSkiaPicture.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/CreateSkiaPicture.java b/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/CreateSkiaPicture.java
new file mode 100644
index 0000000000..61aa14a7b7
--- /dev/null
+++ b/platform_tools/android/apps/canvasproof/src/main/java/org/skia/canvasproof/CreateSkiaPicture.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+/*
+AJAR=$ANDROID_SDK_ROOT/platforms/android-19/android.jar
+CLASS=CreateSkiaPicture
+SRC=platform_tools/android/apps/canvasproof/src/main
+javac -classpath $AJAR $SRC/java/org/skia/canvasproof/$CLASS.java
+javah -classpath $AJAR:$SRC/java -d $SRC/jni org.skia.canvasproof.$CLASS
+*/
+
+package org.skia.canvasproof;
+
+import android.util.Log;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.UnsatisfiedLinkError;
+
+public class CreateSkiaPicture {
+ private static final String TAG = "CreateSkiaPicture";
+
+ public static void init() {
+ try {
+ System.loadLibrary("skia_android");
+ System.loadLibrary("canvasproof");
+ } catch (java.lang.Error e) {
+ Log.v(TAG, "System.loadLibrary error", e);
+ }
+ }
+
+ public static long create(InputStream inputStream) throws IOException {
+ byte[] buffer = new byte[16 * (1 << 10)]; // 16 KByte
+ long p = 0;
+ try {
+ p = CreateSkiaPicture.createImpl(inputStream, buffer);
+ } catch (UnsatisfiedLinkError e) {
+ Log.e(TAG, "UnsatisfiedLinkError createImpl");
+ }
+ inputStream.close();
+ return p;
+ }
+
+ public static void delete(long ptr) {
+ try {
+ if (ptr != 0) {
+ CreateSkiaPicture.deleteImpl(ptr);
+ }
+ } catch (UnsatisfiedLinkError e) {
+ Log.e(TAG, "UnsatisfiedLinkError deleteImpl");
+ }
+
+ }
+ private static native void deleteImpl(long ptr);
+ private static native long createImpl(InputStream s, byte[] b);
+}