[android] Add jni binding for styleable snapshotter (#16286)
* [android] Add jni binding for styleable snapshotter * Remove Map parameter from factories - remove unused map from factory interfaces. Map is only needed for repaint. * implement addlayer function * Implement addsource function for snapshotter * Implement addImages function * format codes * Apply baseline * Update CHANGELOG.md * Update map_snapshotter.cpp * Destroy snapshotter on the thread it was created * Activate file sources in start * Use custom deleter for snapshotter * format codes * Release snapshotter pointer to deleting lambda * Clang format * Update CHANGELOG.md * Fix review comments * FIx review comments Co-authored-by: Alexander Shalamov <alexander.shalamov@mapbox.com>
This commit is contained in:
@@ -26,16 +26,12 @@ namespace android {
|
||||
/**
|
||||
* Creates a non-owning peer object (for layers currently attached to the map)
|
||||
*/
|
||||
CircleLayer::CircleLayer(mbgl::Map& map, mbgl::style::CircleLayer& coreLayer)
|
||||
: Layer(map, coreLayer) {
|
||||
}
|
||||
CircleLayer::CircleLayer(mbgl::style::CircleLayer& coreLayer) : Layer(coreLayer) {}
|
||||
|
||||
/**
|
||||
* Creates an owning peer object (for layers not attached to the map)
|
||||
*/
|
||||
CircleLayer::CircleLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::CircleLayer> coreLayer)
|
||||
: Layer(map, std::move(coreLayer)) {
|
||||
}
|
||||
CircleLayer::CircleLayer(std::unique_ptr<mbgl::style::CircleLayer> coreLayer) : Layer(std::move(coreLayer)) {}
|
||||
|
||||
CircleLayer::~CircleLayer() = default;
|
||||
|
||||
@@ -213,14 +209,18 @@ namespace android {
|
||||
}
|
||||
} // namespace
|
||||
|
||||
jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
|
||||
jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env,
|
||||
mbgl::style::Layer& layer) {
|
||||
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
|
||||
return createJavaPeer(env, new CircleLayer(map, toCircleLayer(layer)));
|
||||
return createJavaPeer(env, new CircleLayer(toCircleLayer(layer)));
|
||||
}
|
||||
|
||||
jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
|
||||
jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(
|
||||
jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
|
||||
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
|
||||
return createJavaPeer(env, new CircleLayer(map, std::unique_ptr<mbgl::style::CircleLayer>(static_cast<mbgl::style::CircleLayer*>(layer.release()))));
|
||||
return createJavaPeer(env,
|
||||
new CircleLayer(std::unique_ptr<mbgl::style::CircleLayer>(
|
||||
static_cast<mbgl::style::CircleLayer*>(layer.release()))));
|
||||
}
|
||||
|
||||
void CircleJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
|
||||
@@ -231,7 +231,9 @@ namespace android {
|
||||
|
||||
// Register the peer
|
||||
jni::RegisterNativePeer<CircleLayer>(
|
||||
env, javaClass, "nativePtr",
|
||||
env,
|
||||
javaClass,
|
||||
"nativePtr",
|
||||
jni::MakePeer<CircleLayer, jni::String&, jni::String&>,
|
||||
"initialize",
|
||||
"finalize",
|
||||
|
||||
Reference in New Issue
Block a user