diff options
Diffstat (limited to 'platform/android/src/native_map_view.cpp')
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 1a0dc34bbc..51edd8079f 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -78,7 +78,8 @@ NativeMapView::NativeMapView(jni::JNIEnv& _env, *threadPool, jni::Make<std::string>(_env, _programCacheDir), - [this] { this->invalidate(); }); + [this] { this->requestRender(); }, + [this] { this->requestProcessing(); }); // Create the core map map = std::make_unique<mbgl::Map>(*rendererFrontend, *this, @@ -97,17 +98,23 @@ NativeMapView::~NativeMapView() { } /** - * Callback to java NativeMapView#onInvalidate(). + * Callback to java NativeMapView#requestRender(). * - * Called to invalidate the View and schedule a render on the next + * Called to schedule a render on the next * runloop iteration. */ -void NativeMapView::invalidate() { +void NativeMapView::requestRender() { android::UniqueEnv _env = android::AttachEnv(); - static auto onInvalidate = javaClass.GetMethod<void ()>(*_env, "onInvalidate"); + static auto onInvalidate = javaClass.GetMethod<void ()>(*_env, "requestRender"); javaPeer->Call(*_env, onInvalidate); } +void NativeMapView::requestProcessing() { + android::UniqueEnv _env = android::AttachEnv(); + static auto requestProcessing = javaClass.GetMethod<void ()>(*_env, "requestProcessing"); + javaPeer->Call(*_env, requestProcessing); +} + /** * From mbgl::RendererBackend. Callback to java NativeMapView#onMapChanged(int). * @@ -195,8 +202,9 @@ void NativeMapView::render(jni::JNIEnv& ) { updateFps(); } -void NativeMapView::update(jni::JNIEnv&) { - invalidate(); +// Called from the OpenGL renderer thread +void NativeMapView::process(jni::JNIEnv&) { + rendererFrontend->process(); } void NativeMapView::resizeView(jni::JNIEnv&, int w, int h) { @@ -1004,7 +1012,7 @@ void NativeMapView::registerNative(jni::JNIEnv& env) { "nativeInitialize", "nativeDestroy", METHOD(&NativeMapView::render, "nativeRender"), - METHOD(&NativeMapView::update, "nativeUpdate"), + METHOD(&NativeMapView::process, "nativeProcess"), METHOD(&NativeMapView::resizeView, "nativeResizeView"), METHOD(&NativeMapView::resizeFramebuffer, "nativeResizeFramebuffer"), METHOD(&NativeMapView::getStyleUrl, "nativeGetStyleUrl"), |