summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-15 17:30:22 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-19 18:15:33 +0300
commitfebe696d4b790a3623b276e2e520acfd2a15d8f8 (patch)
tree1fc600213edfd0ff058ecff4b7eae43a4d5e0668
parent0e45138547e906a0a3d918e9ace262e53d35fb46 (diff)
downloadqtlocation-mapboxgl-febe696d4b790a3623b276e2e520acfd2a15d8f8.tar.gz
[core] Avoid unneeded proj matrix calculations in renderer
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp
index f987bb8666..85f97f78aa 100644
--- a/src/mbgl/renderer/renderer_impl.cpp
+++ b/src/mbgl/renderer/renderer_impl.cpp
@@ -312,12 +312,13 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
bool symbolBucketsChanged = false;
const bool placementChanged = !placement->stillRecent(updateParameters.timePoint);
std::set<std::string> usedSymbolLayers;
-
+ mat4 projMatrix;
if (placementChanged) {
placement = std::make_unique<Placement>(
updateParameters.transformState, updateParameters.mode,
updateParameters.transitionOptions, updateParameters.crossSourceCollisions,
std::move(placement));
+ updateParameters.transformState.getProjMatrix(projMatrix);
}
for (auto it = symbolLayers.rbegin(); it != symbolLayers.rend(); ++it) {
@@ -326,8 +327,6 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
if (placementChanged) {
usedSymbolLayers.insert(symbolLayer.getID());
- mat4 projMatrix;
- updateParameters.transformState.getProjMatrix(projMatrix);
placement->placeLayer(*symbolLayer.getSymbolInterface(), projMatrix, updateParameters.debugOptions & MapDebugOptions::Collision);
}
}