summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/render_tile.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-19 11:41:22 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-22 16:41:10 +0300
commit84d3b5f89971c839c1a15beedf56d8b064be1d6f (patch)
treeca94bb72b196bc3640b46a473fedc0080fc2b77f /src/mbgl/renderer/render_tile.cpp
parente2ed9833c4e069fee1251753d13c9a4ef0cb798b (diff)
downloadqtlocation-mapboxgl-84d3b5f89971c839c1a15beedf56d8b064be1d6f.tar.gz
[core] Prepare render sources before render layers are initialized
Diffstat (limited to 'src/mbgl/renderer/render_tile.cpp')
-rw-r--r--src/mbgl/renderer/render_tile.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mbgl/renderer/render_tile.cpp b/src/mbgl/renderer/render_tile.cpp
index 828163bd6e..3a2c2de5e3 100644
--- a/src/mbgl/renderer/render_tile.cpp
+++ b/src/mbgl/renderer/render_tile.cpp
@@ -1,6 +1,8 @@
#include <mbgl/renderer/render_tile.hpp>
+
#include <mbgl/renderer/paint_parameters.hpp>
#include <mbgl/renderer/buckets/debug_bucket.hpp>
+#include <mbgl/renderer/render_source.hpp>
#include <mbgl/renderer/render_static_data.hpp>
#include <mbgl/programs/programs.hpp>
#include <mbgl/map/transform_state.hpp>
@@ -70,7 +72,7 @@ void RenderTile::upload(gfx::UploadPass& uploadPass) {
}
}
-void RenderTile::prepare(PaintParameters& parameters) {
+void RenderTile::prepare(const SourcePrepareParameters& parameters) {
if (parameters.debugOptions != MapDebugOptions::NoDebug &&
(!debugBucket || debugBucket->renderable != tile.isRenderable() ||
debugBucket->complete != tile.isComplete() ||
@@ -86,10 +88,11 @@ void RenderTile::prepare(PaintParameters& parameters) {
// Calculate two matrices for this tile: matrix is the standard tile matrix; nearClippedMatrix
// clips the near plane to 100 to save depth buffer precision
- parameters.state.matrixFor(matrix, id);
- parameters.state.matrixFor(nearClippedMatrix, id);
- matrix::multiply(matrix, parameters.projMatrix, matrix);
- matrix::multiply(nearClippedMatrix, parameters.nearClippedProjMatrix, nearClippedMatrix);
+ const auto& transform = parameters.transform;
+ transform.state.matrixFor(matrix, id);
+ transform.state.matrixFor(nearClippedMatrix, id);
+ matrix::multiply(matrix, transform.projMatrix, matrix);
+ matrix::multiply(nearClippedMatrix, transform.nearClippedProjMatrix, nearClippedMatrix);
}
void RenderTile::finishRender(PaintParameters& parameters) {