summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-07-08 16:11:18 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-07-11 18:39:50 -0700
commita27b5586e56f8d967a5df4e883225dca0e7ddc3e (patch)
treecdf42af751053e2551658ade27199cca7261ec61 /src
parent6e77149c13899a7b1fc6925687ad495a569f444a (diff)
downloadqtlocation-mapboxgl-a27b5586e56f8d967a5df4e883225dca0e7ddc3e.tar.gz
[core] Pass RenderTile rather than individual parameters
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/renderer/bucket.hpp5
-rw-r--r--src/mbgl/renderer/circle_bucket.cpp5
-rw-r--r--src/mbgl/renderer/circle_bucket.hpp2
-rw-r--r--src/mbgl/renderer/fill_bucket.cpp5
-rw-r--r--src/mbgl/renderer/fill_bucket.hpp2
-rw-r--r--src/mbgl/renderer/line_bucket.cpp5
-rw-r--r--src/mbgl/renderer/line_bucket.hpp2
-rw-r--r--src/mbgl/renderer/painter.cpp2
-rw-r--r--src/mbgl/renderer/painter.hpp15
-rw-r--r--src/mbgl/renderer/painter_circle.cpp6
-rw-r--r--src/mbgl/renderer/painter_fill.cpp16
-rw-r--r--src/mbgl/renderer/painter_line.cpp16
-rw-r--r--src/mbgl/renderer/painter_raster.cpp6
-rw-r--r--src/mbgl/renderer/painter_symbol.cpp27
-rw-r--r--src/mbgl/renderer/raster_bucket.cpp5
-rw-r--r--src/mbgl/renderer/raster_bucket.hpp2
-rw-r--r--src/mbgl/renderer/symbol_bucket.cpp5
-rw-r--r--src/mbgl/renderer/symbol_bucket.hpp2
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;