[core] Update MapObserver::onDidFinishRenderingFrame() API
This commit is contained in:
@@ -34,6 +34,12 @@ public:
|
||||
Full
|
||||
};
|
||||
|
||||
struct RenderFrameStatus {
|
||||
RenderMode mode;
|
||||
bool needsRepaint; // In continous mode, shows that there are ongoig transitions.
|
||||
bool placementChanged;
|
||||
};
|
||||
|
||||
virtual void onCameraWillChange(CameraChangeMode) {}
|
||||
virtual void onCameraIsChanging() {}
|
||||
virtual void onCameraDidChange(CameraChangeMode) {}
|
||||
@@ -41,7 +47,7 @@ public:
|
||||
virtual void onDidFinishLoadingMap() {}
|
||||
virtual void onDidFailLoadingMap(MapLoadError, const std::string&) {}
|
||||
virtual void onWillStartRenderingFrame() {}
|
||||
virtual void onDidFinishRenderingFrame(RenderMode, bool /*placementChanged*/) {}
|
||||
virtual void onDidFinishRenderingFrame(RenderFrameStatus) {}
|
||||
virtual void onWillStartRenderingMap() {}
|
||||
virtual void onDidFinishRenderingMap(RenderMode) {}
|
||||
virtual void onDidFinishLoadingStyle() {}
|
||||
|
||||
@@ -185,7 +185,7 @@ void NativeMapView::onWillStartRenderingFrame() {
|
||||
}
|
||||
}
|
||||
|
||||
void NativeMapView::onDidFinishRenderingFrame(MapObserver::RenderMode mode, bool) {
|
||||
void NativeMapView::onDidFinishRenderingFrame(MapObserver::RenderFrameStatus status) {
|
||||
assert(vm != nullptr);
|
||||
|
||||
android::UniqueEnv _env = android::AttachEnv();
|
||||
@@ -193,7 +193,7 @@ void NativeMapView::onDidFinishRenderingFrame(MapObserver::RenderMode mode, bool
|
||||
static auto onDidFinishRenderingFrame = javaClass.GetMethod<void (jboolean)>(*_env, "onDidFinishRenderingFrame");
|
||||
auto weakReference = javaPeer.get(*_env);
|
||||
if (weakReference) {
|
||||
weakReference.Call(*_env, onDidFinishRenderingFrame, (jboolean) (mode != MapObserver::RenderMode::Partial));
|
||||
weakReference.Call(*_env, onDidFinishRenderingFrame, (jboolean) (status.mode != MapObserver::RenderMode::Partial));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
void onDidFinishLoadingMap() override;
|
||||
void onDidFailLoadingMap(MapLoadError, const std::string&) override;
|
||||
void onWillStartRenderingFrame() override;
|
||||
void onDidFinishRenderingFrame(MapObserver::RenderMode, bool) override;
|
||||
void onDidFinishRenderingFrame(MapObserver::RenderFrameStatus) override;
|
||||
void onWillStartRenderingMap() override;
|
||||
void onDidFinishRenderingMap(MapObserver::RenderMode) override;
|
||||
void onDidBecomeIdle() override;
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
void onDidFinishLoadingMap() override;
|
||||
void onDidFailLoadingMap(mbgl::MapLoadError mapError, const std::string& what) override;
|
||||
void onWillStartRenderingFrame() override;
|
||||
void onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode, bool) override;
|
||||
void onDidFinishRenderingFrame(mbgl::MapObserver::RenderFrameStatus) override;
|
||||
void onWillStartRenderingMap() override;
|
||||
void onDidFinishRenderingMap(mbgl::MapObserver::RenderMode) override;
|
||||
void onDidFinishLoadingStyle() override;
|
||||
|
||||
@@ -68,8 +68,8 @@ void MGLMapViewImpl::onWillStartRenderingFrame() {
|
||||
[mapView mapViewWillStartRenderingFrame];
|
||||
}
|
||||
|
||||
void MGLMapViewImpl::onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode mode, bool) {
|
||||
bool fullyRendered = mode == mbgl::MapObserver::RenderMode::Full;
|
||||
void MGLMapViewImpl::onDidFinishRenderingFrame(mbgl::MapObserver::RenderFrameStatus status) {
|
||||
bool fullyRendered = status.mode == mbgl::MapObserver::RenderMode::Full;
|
||||
[mapView mapViewDidFinishRenderingFrameFullyRendered:fullyRendered];
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
void onDidFinishLoadingMap() override;
|
||||
void onDidFailLoadingMap(mbgl::MapLoadError mapError, const std::string& what) override;
|
||||
void onWillStartRenderingFrame() override;
|
||||
void onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode, bool /*placementChanged*/) override;
|
||||
void onDidFinishRenderingFrame(mbgl::MapObserver::RenderFrameStatus) override;
|
||||
void onWillStartRenderingMap() override;
|
||||
void onDidFinishRenderingMap(mbgl::MapObserver::RenderMode) override;
|
||||
void onDidFinishLoadingStyle() override;
|
||||
|
||||
@@ -67,8 +67,8 @@ void MGLMapViewImpl::onWillStartRenderingFrame() {
|
||||
[mapView mapViewWillStartRenderingFrame];
|
||||
}
|
||||
|
||||
void MGLMapViewImpl::onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode mode, bool) {
|
||||
bool fullyRendered = mode == mbgl::MapObserver::RenderMode::Full;
|
||||
void MGLMapViewImpl::onDidFinishRenderingFrame(mbgl::MapObserver::RenderFrameStatus status) {
|
||||
bool fullyRendered = status.mode == mbgl::MapObserver::RenderMode::Full;
|
||||
[mapView mapViewDidFinishRenderingFrameFullyRendered:fullyRendered];
|
||||
}
|
||||
|
||||
|
||||
@@ -77,9 +77,9 @@ void QMapboxGLMapObserver::onWillStartRenderingFrame()
|
||||
emit mapChanged(QMapboxGL::MapChangeWillStartRenderingFrame);
|
||||
}
|
||||
|
||||
void QMapboxGLMapObserver::onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode mode, bool)
|
||||
void QMapboxGLMapObserver::onDidFinishRenderingFrame(mbgl::MapObserver::RenderFrameStatus status)
|
||||
{
|
||||
if (mode == mbgl::MapObserver::RenderMode::Partial) {
|
||||
if (status.mode == mbgl::MapObserver::RenderMode::Partial) {
|
||||
emit mapChanged(QMapboxGL::MapChangeDidFinishRenderingFrame);
|
||||
} else {
|
||||
emit mapChanged(QMapboxGL::MapChangeDidFinishRenderingFrameFullyRendered);
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
void onDidFinishLoadingMap() final;
|
||||
void onDidFailLoadingMap(mbgl::MapLoadError, const std::string&) final;
|
||||
void onWillStartRenderingFrame() final;
|
||||
void onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode, bool /*placementChanged*/) final;
|
||||
void onDidFinishRenderingFrame(mbgl::MapObserver::RenderFrameStatus) final;
|
||||
void onWillStartRenderingMap() final;
|
||||
void onDidFinishRenderingMap(mbgl::MapObserver::RenderMode) final;
|
||||
void onDidFinishLoadingStyle() final;
|
||||
|
||||
@@ -134,7 +134,7 @@ void Map::Impl::onDidFinishRenderingFrame(RenderMode renderMode, bool needsRepai
|
||||
rendererFullyLoaded = renderMode == RenderMode::Full;
|
||||
|
||||
if (mode == MapMode::Continuous) {
|
||||
observer.onDidFinishRenderingFrame(MapObserver::RenderMode(renderMode), placemenChanged);
|
||||
observer.onDidFinishRenderingFrame({MapObserver::RenderMode(renderMode), needsRepaint, placemenChanged});
|
||||
|
||||
if (needsRepaint || transform.inTransition()) {
|
||||
onUpdate();
|
||||
|
||||
@@ -762,7 +762,7 @@ TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) {
|
||||
HeadlessFrontend frontend(1);
|
||||
|
||||
StubMapObserver observer;
|
||||
observer.didFinishRenderingFrameCallback = [&] (MapObserver::RenderMode) {
|
||||
observer.didFinishRenderingFrameCallback = [&] (MapObserver::RenderFrameStatus) {
|
||||
// Start a timer that ends the test one second from now. If we are continuing to render
|
||||
// indefinitely, the timer will be constantly restarted and never trigger. Instead, the
|
||||
// emergency shutoff above will trigger, failing the test.
|
||||
|
||||
@@ -32,9 +32,9 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void onDidFinishRenderingFrame(RenderMode mode, bool) final {
|
||||
void onDidFinishRenderingFrame(RenderFrameStatus status) final {
|
||||
if (didFinishRenderingFrameCallback) {
|
||||
didFinishRenderingFrameCallback(mode);
|
||||
didFinishRenderingFrameCallback(status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
std::function<void()> didFinishLoadingMapCallback;
|
||||
std::function<void()> didFailLoadingMapCallback;
|
||||
std::function<void()> didFinishLoadingStyleCallback;
|
||||
std::function<void(RenderMode)> didFinishRenderingFrameCallback;
|
||||
std::function<void(RenderFrameStatus)> didFinishRenderingFrameCallback;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user