diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-04-14 16:37:07 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-04-15 09:56:18 -0700 |
commit | 9d18d65eda9e564553ce712cfed5c7615986b0f2 (patch) | |
tree | 1a62944935c09d9844a65c32d8b8c1911395dba3 /src/mbgl/map | |
parent | ed489e764971b40b01e33e8505f2d31a72a0075e (diff) | |
download | qtlocation-mapboxgl-9d18d65eda9e564553ce712cfed5c7615986b0f2.tar.gz |
[core] Remove MapData dependency from Painter
Diffstat (limited to 'src/mbgl/map')
-rw-r--r-- | src/mbgl/map/map.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 8be4f1ebc0..085082776c 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -68,7 +68,7 @@ public: Map::StillImageCallback callback; size_t sourceCacheSize; TransformState transformState; - FrameData frameData; + TimePoint timePoint; bool loading = false; }; @@ -132,9 +132,6 @@ void Map::renderStill(StillImageCallback callback) { } impl->callback = callback; - impl->transformState = impl->transform.getState(); - impl->frameData = FrameData{ impl->view.getFramebufferSize(), Clock::now() }; - impl->updateFlags |= Update::RenderStill; impl->asyncUpdate.send(); } @@ -163,9 +160,6 @@ void Map::render() { const Update flags = impl->transform.updateTransitions(Clock::now()); - impl->transformState = impl->transform.getState(); - impl->frameData = FrameData { impl->view.getFramebufferSize(), Clock::now() }; - impl->render(); impl->view.notifyMapChange(isFullyLoaded() ? @@ -202,7 +196,7 @@ void Map::Impl::update() { // This time point is used to: // - Calculate style property transitions; // - Hint style sources to notify when all its tiles are loaded; - frameData.timePoint = Clock::now(); + timePoint = Clock::now(); if (style->loaded && updateFlags & Update::Annotations) { data.getAnnotationManager()->updateStyle(*style); @@ -210,16 +204,16 @@ void Map::Impl::update() { } if (updateFlags & Update::Classes) { - style->cascade(frameData.timePoint, data.mode); + style->cascade(timePoint, data.mode); } if (updateFlags & Update::Classes || updateFlags & Update::RecalculateStyle) { - style->recalculate(transformState.getZoom(), frameData.timePoint, data.mode); + style->recalculate(transformState.getZoom(), timePoint, data.mode); } StyleUpdateParameters parameters(data.pixelRatio, data.getDebug(), - frameData.timePoint, + timePoint, transformState, style->workers, fileSource, @@ -243,10 +237,19 @@ void Map::Impl::update() { } void Map::Impl::render() { + transformState = transform.getState(); + if (!painter) { - painter = std::make_unique<Painter>(data, transformState, glObjectStore); + painter = std::make_unique<Painter>(transformState, glObjectStore); } + FrameData frameData { view.getFramebufferSize(), + timePoint, + data.pixelRatio, + data.mode, + data.contextMode, + data.getDebug() }; + painter->render(*style, frameData, data.getAnnotationManager()->getSpriteAtlas()); |