summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-06-13 11:28:41 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-06-14 11:13:43 -0700
commitd27740650bb71469ab5a2ce5528d71d59f23ad8a (patch)
tree3e694fe53426d04c85b26beafd16ad8809f71b30
parentd618d4a274023257988a91e96ecf794338189bf8 (diff)
downloadqtlocation-mapboxgl-d27740650bb71469ab5a2ce5528d71d59f23ad8a.tar.gz
[core] Don't upload the FrameHistory texture in frames where it's not changing
-rw-r--r--src/mbgl/renderer/frame_history.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/mbgl/renderer/frame_history.cpp b/src/mbgl/renderer/frame_history.cpp
index a933a9004a..35e246f488 100644
--- a/src/mbgl/renderer/frame_history.cpp
+++ b/src/mbgl/renderer/frame_history.cpp
@@ -39,15 +39,15 @@ void FrameHistory::record(const TimePoint& now, float zoom, const Duration& dura
for (int16_t z = 0; z <= 255; z++) {
std::chrono::duration<float> timeDiff = now - changeTimes[z];
int32_t opacityChange = (duration == Milliseconds(0) ? 1 : (timeDiff / duration)) * 255;
- if (z <= zoomIndex) {
- opacities.data[z] = util::min(255, changeOpacities[z] + opacityChange);
- } else {
- opacities.data[z] = util::max(0, changeOpacities[z] - opacityChange);
+ uint8_t opacity = z <= zoomIndex
+ ? util::min(255, changeOpacities[z] + opacityChange)
+ : util::max(0, changeOpacities[z] - opacityChange);
+ if (opacities.data[z] != opacity) {
+ opacities.data[z] = opacity;
+ dirty = true;
}
}
- dirty = true;
-
if (zoomIndex != previousZoomIndex) {
previousZoomIndex = zoomIndex;
previousTime = now;