diff options
author | Tobrun Van Nuland <tobrun.van.nuland@gmail.com> | 2016-07-27 18:39:32 +0200 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2016-08-03 14:55:45 -0400 |
commit | 6016b2981e73be81f6a74a789ffabb51b7e91700 (patch) | |
tree | 4a3a4f50978dbfd2ff9ca304ce7c8638819a973d /platform/android/src/jni.cpp | |
parent | 9b871a9a0fcbbeb40cec07fc976cbdbaebf00856 (diff) | |
download | qtlocation-mapboxgl-6016b2981e73be81f6a74a789ffabb51b7e91700.tar.gz |
[android] SurfaceView compatible snapshot api
[android] #5587 - snapshot API on surface view, create Bitmap with a ByteBuffer
[android] #5587 - write bitmap to external storage
PreMultipliedImage approach
callback implemented
clean up code
introduce bitmap reuse
cleanup
renaming surfaceContent to bitmap
Diffstat (limited to 'platform/android/src/jni.cpp')
-rwxr-xr-x | platform/android/src/jni.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp index 5fc29f4c29..5907a0ff9d 100755 --- a/platform/android/src/jni.cpp +++ b/platform/android/src/jni.cpp @@ -45,6 +45,7 @@ std::string androidRelease; jni::jmethodID* onInvalidateId = nullptr; jni::jmethodID* onMapChangedId = nullptr; jni::jmethodID* onFpsChangedId = nullptr; +jni::jmethodID* onSnapshotReadyId = nullptr; jni::jclass* latLngClass = nullptr; jni::jmethodID* latLngConstructorId = nullptr; @@ -1172,6 +1173,13 @@ void nativeRemoveSource(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, } } +void nativeScheduleTakeSnapshot(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr) { + mbgl::Log::Error(mbgl::Event::JNI, "nativeRenderToOffscreen"); + assert(nativeMapViewPtr != 0); + NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); + nativeMapView->scheduleTakeSnapshot(); +} + // Offline calls begin jlong createDefaultFileSource(JNIEnv *env, jni::jobject* obj, jni::jstring* cachePath_, jni::jstring* assetRoot_, jlong maximumCacheSize) { @@ -1706,6 +1714,7 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) { onInvalidateId = &jni::GetMethodID(env, nativeMapViewClass, "onInvalidate", "()V"); onMapChangedId = &jni::GetMethodID(env, nativeMapViewClass, "onMapChanged", "(I)V"); onFpsChangedId = &jni::GetMethodID(env, nativeMapViewClass, "onFpsChanged", "(D)V"); + onSnapshotReadyId = &jni::GetMethodID(env, nativeMapViewClass, "onSnapshotReady","([B)V"); #define MAKE_NATIVE_METHOD(name, sig) jni::MakeNativeMethod<decltype(name), name>( #name, sig ) @@ -1786,7 +1795,8 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) { MAKE_NATIVE_METHOD(nativeRemoveLayer, "(JLjava/lang/String;)V"), MAKE_NATIVE_METHOD(nativeAddSource, "(JLjava/lang/String;Lcom/mapbox/mapboxsdk/style/sources/Source;)V"), MAKE_NATIVE_METHOD(nativeRemoveSource, "(JLjava/lang/String;)V"), - MAKE_NATIVE_METHOD(nativeSetContentPadding, "(JDDDD)V") + MAKE_NATIVE_METHOD(nativeSetContentPadding, "(JDDDD)V"), + MAKE_NATIVE_METHOD(nativeScheduleTakeSnapshot, "(J)V") ); // Offline begin |