From febe696d4b790a3623b276e2e520acfd2a15d8f8 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Wed, 15 May 2019 17:30:22 +0300 Subject: [core] Avoid unneeded proj matrix calculations in renderer --- src/mbgl/renderer/renderer_impl.cpp | 5 ++--- 1 file 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 usedSymbolLayers; - + mat4 projMatrix; if (placementChanged) { placement = std::make_unique( 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); } } -- cgit v1.2.1