diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-06-13 11:28:41 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-06-13 14:35:13 -0700 |
commit | 8902e28e9b252d53079635e28151199feaf2ea84 (patch) | |
tree | ef92b743bdb00b27a52575204060a1eb6ac86ceb | |
parent | 9d276f3b0f0e5f1b5089a6cd727927361e6634ac (diff) | |
download | qtlocation-mapboxgl-8902e28e9b252d53079635e28151199feaf2ea84.tar.gz |
[core] Don't upload the FrameHistory texture in frames where it's not changing
-rw-r--r-- | src/mbgl/renderer/frame_history.cpp | 12 |
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; |