[core] Pass RenderTile rather than individual parameters
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) }};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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(); }
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user