diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-07-08 16:11:18 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-07-11 18:39:50 -0700 |
commit | a27b5586e56f8d967a5df4e883225dca0e7ddc3e (patch) | |
tree | cdf42af751053e2551658ade27199cca7261ec61 /src | |
parent | 6e77149c13899a7b1fc6925687ad495a569f444a (diff) | |
download | qtlocation-mapboxgl-a27b5586e56f8d967a5df4e883225dca0e7ddc3e.tar.gz |
[core] Pass RenderTile rather than individual parameters
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/bucket.hpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/circle_bucket.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/circle_bucket.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/fill_bucket.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/fill_bucket.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/line_bucket.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/line_bucket.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/painter.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/painter.hpp | 15 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_circle.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_fill.cpp | 16 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_line.cpp | 16 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_raster.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/painter_symbol.cpp | 27 | ||||
-rw-r--r-- | src/mbgl/renderer/raster_bucket.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/raster_bucket.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.hpp | 2 |
18 files changed, 59 insertions, 69 deletions
diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp index 5575b96176..635c83e3c0 100644 --- a/src/mbgl/renderer/bucket.hpp +++ b/src/mbgl/renderer/bucket.hpp @@ -4,7 +4,6 @@ #include <mbgl/renderer/render_pass.hpp> #include <mbgl/util/atomic.hpp> #include <mbgl/util/noncopyable.hpp> -#include <mbgl/util/mat4.hpp> #define BUFFER_OFFSET_0 ((GLbyte*)nullptr) #define BUFFER_OFFSET(i) ((BUFFER_OFFSET_0) + (i)) @@ -13,8 +12,8 @@ namespace mbgl { class Painter; class PaintParameters; -class UnwrappedTileID; class CollisionTile; +class RenderTile; namespace gl { class ObjectStore; @@ -35,7 +34,7 @@ public: // Every time this bucket is getting rendered, this function is called. This happens either // once or twice (for Opaque and Transparent render passes). - virtual void render(Painter&, PaintParameters&, const style::Layer&, const UnwrappedTileID&, const mat4&) = 0; + virtual void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) = 0; virtual ~Bucket() = default; diff --git a/src/mbgl/renderer/circle_bucket.cpp b/src/mbgl/renderer/circle_bucket.cpp index d0d2d2402e..0b5c45ccc2 100644 --- a/src/mbgl/renderer/circle_bucket.cpp +++ b/src/mbgl/renderer/circle_bucket.cpp @@ -25,9 +25,8 @@ void CircleBucket::upload(gl::ObjectStore& store, gl::Config&) { void CircleBucket::render(Painter& painter, PaintParameters& parameters, const Layer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { - painter.renderCircle(parameters, *this, *layer.as<CircleLayer>(), tileID, matrix); + const RenderTile& tile) { + painter.renderCircle(parameters, *this, *layer.as<CircleLayer>(), tile); } bool CircleBucket::hasData() const { diff --git a/src/mbgl/renderer/circle_bucket.hpp b/src/mbgl/renderer/circle_bucket.hpp index 81d8161b06..617a9e5b24 100644 --- a/src/mbgl/renderer/circle_bucket.hpp +++ b/src/mbgl/renderer/circle_bucket.hpp @@ -19,7 +19,7 @@ public: ~CircleBucket() override; void upload(gl::ObjectStore&, gl::Config&) override; - void render(Painter&, PaintParameters&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/fill_bucket.cpp b/src/mbgl/renderer/fill_bucket.cpp index 1ec53ee510..4622c2097e 100644 --- a/src/mbgl/renderer/fill_bucket.cpp +++ b/src/mbgl/renderer/fill_bucket.cpp @@ -107,9 +107,8 @@ void FillBucket::upload(gl::ObjectStore& store, gl::Config&) { void FillBucket::render(Painter& painter, PaintParameters& parameters, const Layer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { - painter.renderFill(parameters, *this, *layer.as<FillLayer>(), tileID, matrix); + const RenderTile& tile) { + painter.renderFill(parameters, *this, *layer.as<FillLayer>(), tile); } bool FillBucket::hasData() const { diff --git a/src/mbgl/renderer/fill_bucket.hpp b/src/mbgl/renderer/fill_bucket.hpp index c95efba1ca..cacda975f0 100644 --- a/src/mbgl/renderer/fill_bucket.hpp +++ b/src/mbgl/renderer/fill_bucket.hpp @@ -21,7 +21,7 @@ public: ~FillBucket() override; void upload(gl::ObjectStore&, gl::Config&) override; - void render(Painter&, PaintParameters&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/line_bucket.cpp b/src/mbgl/renderer/line_bucket.cpp index 0f3a31c272..e9f920efa6 100644 --- a/src/mbgl/renderer/line_bucket.cpp +++ b/src/mbgl/renderer/line_bucket.cpp @@ -448,9 +448,8 @@ void LineBucket::upload(gl::ObjectStore& store, gl::Config&) { void LineBucket::render(Painter& painter, PaintParameters& parameters, const Layer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { - painter.renderLine(parameters, *this, *layer.as<LineLayer>(), tileID, matrix); + const RenderTile& tile) { + painter.renderLine(parameters, *this, *layer.as<LineLayer>(), tile); } bool LineBucket::hasData() const { diff --git a/src/mbgl/renderer/line_bucket.hpp b/src/mbgl/renderer/line_bucket.hpp index 49b6211070..6687faab4c 100644 --- a/src/mbgl/renderer/line_bucket.hpp +++ b/src/mbgl/renderer/line_bucket.hpp @@ -25,7 +25,7 @@ public: ~LineBucket() override; void upload(gl::ObjectStore&, gl::Config&) override; - void render(Painter&, PaintParameters&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp index e55f41b5fb..b39cee97e2 100644 --- a/src/mbgl/renderer/painter.cpp +++ b/src/mbgl/renderer/painter.cpp @@ -265,7 +265,7 @@ void Painter::renderPass(PaintParameters& parameters, if (item.bucket->needsClipping()) { setClipping(item.tile->clip); } - item.bucket->render(*this, parameters, layer, item.tile->id, item.tile->matrix); + item.bucket->render(*this, parameters, layer, *item.tile); } } diff --git a/src/mbgl/renderer/painter.hpp b/src/mbgl/renderer/painter.hpp index 4c13d9dcd5..0133c43072 100644 --- a/src/mbgl/renderer/painter.hpp +++ b/src/mbgl/renderer/painter.hpp @@ -89,11 +89,11 @@ public: void renderClipMasks(); void renderDebugText(Tile&, const mat4&); - void renderFill(PaintParameters&, FillBucket&, const style::FillLayer&, const UnwrappedTileID&, const mat4&); - void renderLine(PaintParameters&, LineBucket&, const style::LineLayer&, const UnwrappedTileID&, const mat4&); - void renderCircle(PaintParameters&, CircleBucket&, const style::CircleLayer&, const UnwrappedTileID&, const mat4&); - void renderSymbol(PaintParameters&, SymbolBucket&, const style::SymbolLayer&, const UnwrappedTileID&, const mat4&); - void renderRaster(PaintParameters&, RasterBucket&, const style::RasterLayer&, const UnwrappedTileID&, const mat4&); + void renderFill(PaintParameters&, FillBucket&, const style::FillLayer&, const RenderTile&); + void renderLine(PaintParameters&, LineBucket&, const style::LineLayer&, const RenderTile&); + void renderCircle(PaintParameters&, CircleBucket&, const style::CircleLayer&, const RenderTile&); + void renderSymbol(PaintParameters&, SymbolBucket&, const style::SymbolLayer&, const RenderTile&); + void renderRaster(PaintParameters&, RasterBucket&, const style::RasterLayer&, const RenderTile&); void renderBackground(PaintParameters&, const style::BackgroundLayer&); float saturationFactor(float saturation); @@ -120,9 +120,8 @@ private: void setClipping(const ClipID&); - void renderSDF(SymbolBucket &bucket, - const UnwrappedTileID &tileID, - const mat4 &matrixSymbol, + void renderSDF(SymbolBucket&, + const RenderTile&, float scaleDivisor, std::array<float, 2> texsize, SDFShader& sdfShader, diff --git a/src/mbgl/renderer/painter_circle.cpp b/src/mbgl/renderer/painter_circle.cpp index 089c2e15ea..9ef531d206 100644 --- a/src/mbgl/renderer/painter_circle.cpp +++ b/src/mbgl/renderer/painter_circle.cpp @@ -1,6 +1,7 @@ #include <mbgl/renderer/painter.hpp> #include <mbgl/renderer/paint_parameters.hpp> #include <mbgl/renderer/circle_bucket.hpp> +#include <mbgl/renderer/render_tile.hpp> #include <mbgl/style/layers/circle_layer.hpp> #include <mbgl/style/layers/circle_layer_impl.hpp> @@ -14,8 +15,7 @@ using namespace style; void Painter::renderCircle(PaintParameters& parameters, CircleBucket& bucket, const CircleLayer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { + const RenderTile& tile) { // Abort early. if (pass == RenderPass::Opaque) return; @@ -26,7 +26,7 @@ void Painter::renderCircle(PaintParameters& parameters, setDepthSublayer(0); const CirclePaintProperties& properties = layer.impl->paint; - mat4 vtxMatrix = translatedMatrix(matrix, properties.circleTranslate, tileID, + mat4 vtxMatrix = translatedMatrix(tile.matrix, properties.circleTranslate, tile.id, properties.circleTranslateAnchor); auto& circleShader = parameters.shaders.circle; diff --git a/src/mbgl/renderer/painter_fill.cpp b/src/mbgl/renderer/painter_fill.cpp index 1b10a90b0b..99a183b386 100644 --- a/src/mbgl/renderer/painter_fill.cpp +++ b/src/mbgl/renderer/painter_fill.cpp @@ -1,6 +1,7 @@ #include <mbgl/renderer/painter.hpp> #include <mbgl/renderer/paint_parameters.hpp> #include <mbgl/renderer/fill_bucket.hpp> +#include <mbgl/renderer/render_tile.hpp> #include <mbgl/style/layers/fill_layer.hpp> #include <mbgl/style/layers/fill_layer_impl.hpp> #include <mbgl/sprite/sprite_atlas.hpp> @@ -14,11 +15,10 @@ using namespace style; void Painter::renderFill(PaintParameters& parameters, FillBucket& bucket, const FillLayer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { + const RenderTile& tile) { const FillPaintProperties& properties = layer.impl->paint; mat4 vertexMatrix = - translatedMatrix(matrix, properties.fillTranslate, tileID, properties.fillTranslateAnchor); + translatedMatrix(tile.matrix, properties.fillTranslate, tile.id, properties.fillTranslateAnchor); Color fillColor = properties.fillColor; float opacity = properties.fillOpacity; @@ -93,11 +93,11 @@ void Painter::renderFill(PaintParameters& parameters, patternShader.u_pattern_size_b = imagePosB->size; patternShader.u_scale_a = properties.fillPattern.value.fromScale; patternShader.u_scale_b = properties.fillPattern.value.toScale; - patternShader.u_tile_units_to_pixels = 1.0f / tileID.pixelsToTileUnits(1.0f, state.getIntegerZoom()); + patternShader.u_tile_units_to_pixels = 1.0f / tile.id.pixelsToTileUnits(1.0f, state.getIntegerZoom()); - GLint tileSizeAtNearestZoom = util::tileSize * state.zoomScale(state.getIntegerZoom() - tileID.canonical.z); - GLint pixelX = tileSizeAtNearestZoom * (tileID.canonical.x + tileID.wrap * state.zoomScale(tileID.canonical.z)); - GLint pixelY = tileSizeAtNearestZoom * tileID.canonical.y; + GLint tileSizeAtNearestZoom = util::tileSize * state.zoomScale(state.getIntegerZoom() - tile.id.canonical.z); + GLint pixelX = tileSizeAtNearestZoom * (tile.id.canonical.x + tile.id.wrap * state.zoomScale(tile.id.canonical.z)); + GLint pixelY = tileSizeAtNearestZoom * tile.id.canonical.y; patternShader.u_pixel_coord_upper = {{ float(pixelX >> 16), float(pixelY >> 16) }}; patternShader.u_pixel_coord_lower = {{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }}; @@ -122,7 +122,7 @@ void Painter::renderFill(PaintParameters& parameters, outlinePatternShader.u_pattern_size_b = imagePosB->size; outlinePatternShader.u_scale_a = properties.fillPattern.value.fromScale; outlinePatternShader.u_scale_b = properties.fillPattern.value.toScale; - outlinePatternShader.u_tile_units_to_pixels = 1.0f / tileID.pixelsToTileUnits(1.0f, state.getIntegerZoom()); + outlinePatternShader.u_tile_units_to_pixels = 1.0f / tile.id.pixelsToTileUnits(1.0f, state.getIntegerZoom()); outlinePatternShader.u_pixel_coord_upper = {{ float(pixelX >> 16), float(pixelY >> 16) }}; outlinePatternShader.u_pixel_coord_lower = {{ float(pixelX & 0xFFFF), float(pixelY & 0xFFFF) }}; diff --git a/src/mbgl/renderer/painter_line.cpp b/src/mbgl/renderer/painter_line.cpp index eece09a249..2137eabc03 100644 --- a/src/mbgl/renderer/painter_line.cpp +++ b/src/mbgl/renderer/painter_line.cpp @@ -1,6 +1,7 @@ #include <mbgl/renderer/painter.hpp> #include <mbgl/renderer/paint_parameters.hpp> #include <mbgl/renderer/line_bucket.hpp> +#include <mbgl/renderer/render_tile.hpp> #include <mbgl/style/layers/line_layer.hpp> #include <mbgl/style/layers/line_layer_impl.hpp> #include <mbgl/shader/shaders.hpp> @@ -15,8 +16,7 @@ using namespace style; void Painter::renderLine(PaintParameters& parameters, LineBucket& bucket, const LineLayer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { + const RenderTile& tile) { // Abort early. if (pass == RenderPass::Opaque) return; @@ -37,7 +37,7 @@ void Painter::renderLine(PaintParameters& parameters, const Color color = properties.lineColor; const float opacity = properties.lineOpacity; - const float ratio = 1.0 / tileID.pixelsToTileUnits(1.0, state.getZoom()); + const float ratio = 1.0 / tile.id.pixelsToTileUnits(1.0, state.getZoom()); mat2 antialiasingMatrix; matrix::identity(antialiasingMatrix); @@ -51,7 +51,7 @@ void Painter::renderLine(PaintParameters& parameters, float extra = (topedgelength + x) / topedgelength - 1.0f; mat4 vtxMatrix = - translatedMatrix(matrix, properties.lineTranslate, tileID, properties.lineTranslateAnchor); + translatedMatrix(tile.matrix, properties.lineTranslate, tile.id, properties.lineTranslateAnchor); setDepthSublayer(0); @@ -77,9 +77,9 @@ void Painter::renderLine(PaintParameters& parameters, const float widthA = posA.width * properties.lineDasharray.value.fromScale * layer.impl->dashLineWidth; const float widthB = posB.width * properties.lineDasharray.value.toScale * layer.impl->dashLineWidth; - float scaleXA = 1.0 / tileID.pixelsToTileUnits(widthA, state.getIntegerZoom()); + float scaleXA = 1.0 / tile.id.pixelsToTileUnits(widthA, state.getIntegerZoom()); float scaleYA = -posA.height / 2.0; - float scaleXB = 1.0 / tileID.pixelsToTileUnits(widthB, state.getIntegerZoom()); + float scaleXB = 1.0 / tile.id.pixelsToTileUnits(widthB, state.getIntegerZoom()); float scaleYB = -posB.height / 2.0; linesdfShader.u_patternscale_a = {{ scaleXA, scaleYA }}; @@ -114,14 +114,14 @@ void Painter::renderLine(PaintParameters& parameters, linepatternShader.u_blur = blur; linepatternShader.u_pattern_size_a = {{ - tileID.pixelsToTileUnits((*imagePosA).size[0] * properties.linePattern.value.fromScale, state.getIntegerZoom()), + tile.id.pixelsToTileUnits((*imagePosA).size[0] * properties.linePattern.value.fromScale, state.getIntegerZoom()), (*imagePosA).size[1] }}; linepatternShader.u_pattern_tl_a = (*imagePosA).tl; linepatternShader.u_pattern_br_a = (*imagePosA).br; linepatternShader.u_pattern_size_b = {{ - tileID.pixelsToTileUnits((*imagePosB).size[0] * properties.linePattern.value.toScale, state.getIntegerZoom()), + tile.id.pixelsToTileUnits((*imagePosB).size[0] * properties.linePattern.value.toScale, state.getIntegerZoom()), (*imagePosB).size[1] }}; linepatternShader.u_pattern_tl_b = (*imagePosB).tl; diff --git a/src/mbgl/renderer/painter_raster.cpp b/src/mbgl/renderer/painter_raster.cpp index e71d4c1fe0..8f6a1ac27b 100644 --- a/src/mbgl/renderer/painter_raster.cpp +++ b/src/mbgl/renderer/painter_raster.cpp @@ -1,5 +1,6 @@ #include <mbgl/renderer/painter.hpp> #include <mbgl/renderer/paint_parameters.hpp> +#include <mbgl/renderer/render_tile.hpp> #include <mbgl/gl/gl.hpp> #include <mbgl/renderer/raster_bucket.hpp> #include <mbgl/style/layers/raster_layer.hpp> @@ -13,8 +14,7 @@ using namespace style; void Painter::renderRaster(PaintParameters& parameters, RasterBucket& bucket, const RasterLayer& layer, - const UnwrappedTileID&, - const mat4& matrix) { + const RenderTile& tile) { if (pass != RenderPass::Translucent) return; const RasterPaintProperties& properties = layer.impl->paint; @@ -24,7 +24,7 @@ void Painter::renderRaster(PaintParameters& parameters, auto& rasterVAO = parameters.shaders.coveringRasterArray; config.program = rasterShader.getID(); - rasterShader.u_matrix = matrix; + rasterShader.u_matrix = tile.matrix; rasterShader.u_buffer_scale = 1.0f; rasterShader.u_opacity0 = properties.rasterOpacity; rasterShader.u_opacity1 = 0; diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp index 6f2d9581eb..4c2847401f 100644 --- a/src/mbgl/renderer/painter_symbol.cpp +++ b/src/mbgl/renderer/painter_symbol.cpp @@ -1,6 +1,7 @@ #include <mbgl/renderer/painter.hpp> #include <mbgl/renderer/paint_parameters.hpp> #include <mbgl/renderer/symbol_bucket.hpp> +#include <mbgl/renderer/render_tile.hpp> #include <mbgl/style/layers/symbol_layer.hpp> #include <mbgl/style/layers/symbol_layer_impl.hpp> #include <mbgl/geometry/glyph_atlas.hpp> @@ -15,8 +16,7 @@ namespace mbgl { using namespace style; void Painter::renderSDF(SymbolBucket &bucket, - const UnwrappedTileID &tileID, - const mat4 &matrix, + const RenderTile& tile, float sdfFontSize, std::array<float, 2> texsize, SDFShader& sdfShader, @@ -37,7 +37,7 @@ void Painter::renderSDF(SymbolBucket &bucket, TranslateAnchorType translateAnchor, float paintSize) { - mat4 vtxMatrix = translatedMatrix(matrix, translate, tileID, translateAnchor); + mat4 vtxMatrix = translatedMatrix(tile.matrix, translate, tile.id, translateAnchor); // If layerStyle.size > bucket.info.fontSize then labels may collide float fontSize = paintSize; @@ -51,7 +51,7 @@ void Painter::renderSDF(SymbolBucket &bucket, if (pitchWithMap) { gammaScale = 1.0 / std::cos(state.getPitch()); - extrudeScale.fill(tileID.pixelsToTileUnits(1, state.getZoom()) * fontScale); + extrudeScale.fill(tile.id.pixelsToTileUnits(1, state.getZoom()) * fontScale); } else { gammaScale = 1.0; extrudeScale = {{ @@ -114,8 +114,7 @@ void Painter::renderSDF(SymbolBucket &bucket, void Painter::renderSymbol(PaintParameters& parameters, SymbolBucket& bucket, const SymbolLayer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { + const RenderTile& tile) { // Abort early. if (pass == RenderPass::Opaque) { return; @@ -167,8 +166,7 @@ void Painter::renderSymbol(PaintParameters& parameters, if (sdf) { renderSDF(bucket, - tileID, - matrix, + tile, 1.0f, {{ float(activeSpriteAtlas->getWidth()) / 4.0f, float(activeSpriteAtlas->getHeight()) / 4.0f }}, parameters.shaders.sdfIcon, @@ -188,13 +186,13 @@ void Painter::renderSymbol(PaintParameters& parameters, layer.impl->iconSize); } else { mat4 vtxMatrix = - translatedMatrix(matrix, paint.iconTranslate, tileID, paint.iconTranslateAnchor); + translatedMatrix(tile.matrix, paint.iconTranslate, tile.id, paint.iconTranslateAnchor); std::array<float, 2> extrudeScale; const bool alignedWithMap = layout.iconRotationAlignment == AlignmentType::Map; if (alignedWithMap) { - extrudeScale.fill(tileID.pixelsToTileUnits(1, state.getZoom()) * fontScale); + extrudeScale.fill(tile.id.pixelsToTileUnits(1, state.getZoom()) * fontScale); } else { extrudeScale = {{ pixelsToGLUnits[0] * fontScale * state.getAltitude(), @@ -235,8 +233,7 @@ void Painter::renderSymbol(PaintParameters& parameters, glyphAtlas->bind(store, config, 0); renderSDF(bucket, - tileID, - matrix, + tile, 24.0f, {{ float(glyphAtlas->width) / 4, float(glyphAtlas->height) / 4 }}, parameters.shaders.sdfGlyph, @@ -260,11 +257,11 @@ void Painter::renderSymbol(PaintParameters& parameters, auto& collisionBoxShader = shaders->collisionBox; config.program = collisionBoxShader.getID(); - collisionBoxShader.u_matrix = matrix; + collisionBoxShader.u_matrix = tile.matrix; // TODO: This was the overscaled z instead of the canonical z. - collisionBoxShader.u_scale = std::pow(2, state.getZoom() - tileID.canonical.z); + collisionBoxShader.u_scale = std::pow(2, state.getZoom() - tile.id.canonical.z); collisionBoxShader.u_zoom = state.getZoom() * 10; - collisionBoxShader.u_maxzoom = (tileID.canonical.z + 1) * 10; + collisionBoxShader.u_maxzoom = (tile.id.canonical.z + 1) * 10; config.lineWidth = 1.0f; setDepthSublayer(0); diff --git a/src/mbgl/renderer/raster_bucket.cpp b/src/mbgl/renderer/raster_bucket.cpp index 75540efd1c..58647a330d 100644 --- a/src/mbgl/renderer/raster_bucket.cpp +++ b/src/mbgl/renderer/raster_bucket.cpp @@ -17,9 +17,8 @@ void RasterBucket::upload(gl::ObjectStore& store, gl::Config& config) { void RasterBucket::render(Painter& painter, PaintParameters& parameters, const Layer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { - painter.renderRaster(parameters, *this, *layer.as<RasterLayer>(), tileID, matrix); + const RenderTile& tile) { + painter.renderRaster(parameters, *this, *layer.as<RasterLayer>(), tile); } void RasterBucket::setImage(PremultipliedImage image) { diff --git a/src/mbgl/renderer/raster_bucket.hpp b/src/mbgl/renderer/raster_bucket.hpp index 5cf6e70283..e212b9ecea 100644 --- a/src/mbgl/renderer/raster_bucket.hpp +++ b/src/mbgl/renderer/raster_bucket.hpp @@ -13,7 +13,7 @@ class VertexArrayObject; class RasterBucket : public Bucket { public: void upload(gl::ObjectStore&, gl::Config&) override; - void render(Painter&, PaintParameters&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/symbol_bucket.cpp b/src/mbgl/renderer/symbol_bucket.cpp index eedf02b2f3..f48a98eaac 100644 --- a/src/mbgl/renderer/symbol_bucket.cpp +++ b/src/mbgl/renderer/symbol_bucket.cpp @@ -89,9 +89,8 @@ void SymbolBucket::upload(gl::ObjectStore& store, gl::Config&) { void SymbolBucket::render(Painter& painter, PaintParameters& parameters, const Layer& layer, - const UnwrappedTileID& tileID, - const mat4& matrix) { - painter.renderSymbol(parameters, *this, *layer.as<SymbolLayer>(), tileID, matrix); + const RenderTile& tile) { + painter.renderSymbol(parameters, *this, *layer.as<SymbolLayer>(), tile); } bool SymbolBucket::hasData() const { return hasTextData() || hasIconData() || !symbolInstances.empty(); } diff --git a/src/mbgl/renderer/symbol_bucket.hpp b/src/mbgl/renderer/symbol_bucket.hpp index 2185bc79f7..79c32e9d88 100644 --- a/src/mbgl/renderer/symbol_bucket.hpp +++ b/src/mbgl/renderer/symbol_bucket.hpp @@ -70,7 +70,7 @@ public: ~SymbolBucket() override; void upload(gl::ObjectStore&, gl::Config&) override; - void render(Painter&, PaintParameters&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; bool hasData() const override; bool hasTextData() const; bool hasIconData() const; |