summaryrefslogtreecommitdiff
path: root/src/mbgl/map
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-04-14 16:37:07 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-04-15 09:56:18 -0700
commit9d18d65eda9e564553ce712cfed5c7615986b0f2 (patch)
tree1a62944935c09d9844a65c32d8b8c1911395dba3 /src/mbgl/map
parented489e764971b40b01e33e8505f2d31a72a0075e (diff)
downloadqtlocation-mapboxgl-9d18d65eda9e564553ce712cfed5c7615986b0f2.tar.gz
[core] Remove MapData dependency from Painter
Diffstat (limited to 'src/mbgl/map')
-rw-r--r--src/mbgl/map/map.cpp27
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());