diff options
Diffstat (limited to 'platform/android/src/style/sources/sources.cpp')
-rw-r--r-- | platform/android/src/style/sources/sources.cpp | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/platform/android/src/style/sources/sources.cpp b/platform/android/src/style/sources/sources.cpp index 7ca6328e71..9ab3ca8e84 100644 --- a/platform/android/src/style/sources/sources.cpp +++ b/platform/android/src/style/sources/sources.cpp @@ -13,28 +13,35 @@ #include "unknown_source.hpp" #include "vector_source.hpp" +namespace { + + using namespace mbgl::android; + + Source* initializeSourcePeer(mbgl::style::Source& coreSource) { + Source* source; + if (coreSource.is<mbgl::style::VectorSource>()) { + source = new VectorSource(*coreSource.as<mbgl::style::VectorSource>()); + } else if (coreSource.is<mbgl::style::RasterSource>()) { + source = new RasterSource(*coreSource.as<mbgl::style::RasterSource>()); + } else if (coreSource.is<mbgl::style::GeoJSONSource>()) { + source = new GeoJSONSource(*coreSource.as<mbgl::style::GeoJSONSource>()); + } else if (coreSource.is<mbgl::style::ImageSource>()) { + source = new ImageSource(*coreSource.as<mbgl::style::ImageSource>()); + } else { + source = new UnknownSource(coreSource); + } + + return source; + } +} // namespace + namespace mbgl { namespace android { -Source* initializeSourcePeer(mbgl::Map& map, mbgl::style::Source& coreSource) { - Source* source; - if (coreSource.is<mbgl::style::VectorSource>()) { - source = new VectorSource(map, *coreSource.as<mbgl::style::VectorSource>()); - } else if (coreSource.is<mbgl::style::RasterSource>()) { - source = new RasterSource(map, *coreSource.as<mbgl::style::RasterSource>()); - } else if (coreSource.is<mbgl::style::GeoJSONSource>()) { - source = new GeoJSONSource(map, *coreSource.as<mbgl::style::GeoJSONSource>()); - } else if (coreSource.is<mbgl::style::ImageSource>()) { - source = new ImageSource(map, *coreSource.as<mbgl::style::ImageSource>()); - } else { - source = new UnknownSource(map, coreSource); - } - - return source; -} -jni::jobject* createJavaSourcePeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Source& coreSource) { - std::unique_ptr<Source> peerSource = std::unique_ptr<Source>(initializeSourcePeer(map, coreSource)); +jni::jobject* createJavaSourcePeer(jni::JNIEnv& env, AndroidRendererFrontend& frontend, mbgl::style::Source& coreSource) { + std::unique_ptr<Source> peerSource = std::unique_ptr<Source>(initializeSourcePeer(coreSource)); + peerSource->setRendererFrontend(frontend); jni::jobject* result = peerSource->createJavaPeer(env); peerSource.release(); return result; |