summaryrefslogtreecommitdiff
path: root/platform/android/src/bitmap.hpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-01-24 15:47:53 +0100
committerKonstantin Käfer <mail@kkaefer.com>2017-01-27 18:45:16 +0100
commit4d358260140c9d52103cc95631a8519b969bc408 (patch)
treedaf17b610189a824eab34e4055b9bc0ebf585375 /platform/android/src/bitmap.hpp
parent14d5c336d72f3af54e3f72295e901591e219b5a9 (diff)
downloadqtlocation-mapboxgl-4d358260140c9d52103cc95631a8519b969bc408.tar.gz
[android] use native image encoding and decoding
Diffstat (limited to 'platform/android/src/bitmap.hpp')
-rw-r--r--platform/android/src/bitmap.hpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/platform/android/src/bitmap.hpp b/platform/android/src/bitmap.hpp
new file mode 100644
index 0000000000..f64f42ae87
--- /dev/null
+++ b/platform/android/src/bitmap.hpp
@@ -0,0 +1,52 @@
+#pragma once
+
+#include <mbgl/util/image.hpp>
+
+#include <jni/jni.hpp>
+
+namespace mbgl {
+namespace android {
+
+class Bitmap {
+public:
+ class Config {
+ public:
+ static constexpr auto Name() {
+ return "android/graphics/Bitmap$Config";
+ };
+ static void registerNative(jni::JNIEnv&);
+
+ enum Value {
+ ALPHA_8,
+ ARGB_4444,
+ ARGB_8888,
+ RGB_565,
+ };
+
+ static jni::Object<Config> Create(jni::JNIEnv&, Value);
+
+ private:
+ static jni::Class<Config> _class;
+ };
+
+ static constexpr auto Name() {
+ return "android/graphics/Bitmap";
+ };
+ static void registerNative(jni::JNIEnv&);
+
+ static jni::Object<Bitmap>
+ CreateBitmap(jni::JNIEnv&, jni::jint width, jni::jint height, jni::Object<Config>);
+ static jni::Object<Bitmap>
+ CreateBitmap(jni::JNIEnv& env, jni::jint width, jni::jint height, Config::Value config) {
+ return CreateBitmap(env, width, height, Config::Create(env, config));
+ }
+
+ static PremultipliedImage GetImage(jni::JNIEnv&, jni::Object<Bitmap>);
+ static jni::Object<Bitmap> CreateBitmap(jni::JNIEnv&, const PremultipliedImage&);
+
+private:
+ static jni::Class<Bitmap> _class;
+};
+
+} // namespace android
+} // namespace mbgl