summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/bucket.hpp4
-rw-r--r--src/mbgl/renderer/circle_bucket.cpp2
-rw-r--r--src/mbgl/renderer/circle_bucket.hpp2
-rw-r--r--src/mbgl/renderer/fill_bucket.cpp2
-rw-r--r--src/mbgl/renderer/fill_bucket.hpp2
-rw-r--r--src/mbgl/renderer/line_bucket.cpp2
-rw-r--r--src/mbgl/renderer/line_bucket.hpp4
-rw-r--r--src/mbgl/renderer/painter.cpp13
-rw-r--r--src/mbgl/renderer/painter.hpp1
-rw-r--r--src/mbgl/renderer/painter_background.cpp3
-rw-r--r--src/mbgl/renderer/painter_circle.cpp3
-rw-r--r--src/mbgl/renderer/painter_fill.cpp3
-rw-r--r--src/mbgl/renderer/painter_line.cpp7
-rw-r--r--src/mbgl/renderer/painter_raster.cpp3
-rw-r--r--src/mbgl/renderer/painter_symbol.cpp10
-rw-r--r--src/mbgl/renderer/raster_bucket.cpp2
-rw-r--r--src/mbgl/renderer/raster_bucket.hpp2
-rw-r--r--src/mbgl/renderer/symbol_bucket.cpp2
-rw-r--r--src/mbgl/renderer/symbol_bucket.hpp4
19 files changed, 38 insertions, 33 deletions
diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp
index cffc0ba8df..89b0ceefb2 100644
--- a/src/mbgl/renderer/bucket.hpp
+++ b/src/mbgl/renderer/bucket.hpp
@@ -13,7 +13,7 @@
namespace mbgl {
class Painter;
-class StyleLayer;
+class Layer;
class UnwrappedTileID;
class CollisionTile;
@@ -31,7 +31,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&, const StyleLayer&, const UnwrappedTileID&, const mat4&) = 0;
+ virtual void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) = 0;
virtual ~Bucket() = default;
diff --git a/src/mbgl/renderer/circle_bucket.cpp b/src/mbgl/renderer/circle_bucket.cpp
index 6df186f2d0..969e05131b 100644
--- a/src/mbgl/renderer/circle_bucket.cpp
+++ b/src/mbgl/renderer/circle_bucket.cpp
@@ -21,7 +21,7 @@ void CircleBucket::upload(gl::ObjectStore& store) {
}
void CircleBucket::render(Painter& painter,
- const StyleLayer& layer,
+ const Layer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
painter.renderCircle(*this, *layer.as<CircleLayer>(), tileID, matrix);
diff --git a/src/mbgl/renderer/circle_bucket.hpp b/src/mbgl/renderer/circle_bucket.hpp
index b0349c7426..9c95fce045 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&) override;
- void render(Painter&, const StyleLayer&, const UnwrappedTileID&, const mat4&) override;
+ void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) 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 78d4c40a97..4a9709f4e8 100644
--- a/src/mbgl/renderer/fill_bucket.cpp
+++ b/src/mbgl/renderer/fill_bucket.cpp
@@ -104,7 +104,7 @@ void FillBucket::upload(gl::ObjectStore& store) {
}
void FillBucket::render(Painter& painter,
- const StyleLayer& layer,
+ const Layer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
painter.renderFill(*this, *layer.as<FillLayer>(), tileID, matrix);
diff --git a/src/mbgl/renderer/fill_bucket.hpp b/src/mbgl/renderer/fill_bucket.hpp
index f1b137893c..21e3239f29 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&) override;
- void render(Painter&, const StyleLayer&, const UnwrappedTileID&, const mat4&) override;
+ void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) 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 c308f02588..8124a5daed 100644
--- a/src/mbgl/renderer/line_bucket.cpp
+++ b/src/mbgl/renderer/line_bucket.cpp
@@ -444,7 +444,7 @@ void LineBucket::upload(gl::ObjectStore& store) {
}
void LineBucket::render(Painter& painter,
- const StyleLayer& layer,
+ const Layer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
painter.renderLine(*this, *layer.as<LineLayer>(), tileID, matrix);
diff --git a/src/mbgl/renderer/line_bucket.hpp b/src/mbgl/renderer/line_bucket.hpp
index 8b60be5f00..1093ec2a48 100644
--- a/src/mbgl/renderer/line_bucket.hpp
+++ b/src/mbgl/renderer/line_bucket.hpp
@@ -5,7 +5,7 @@
#include <mbgl/geometry/vao.hpp>
#include <mbgl/geometry/elements_buffer.hpp>
#include <mbgl/geometry/line_buffer.hpp>
-#include <mbgl/layer/line_layer.hpp>
+#include <mbgl/layer/line_layer_impl.hpp>
#include <vector>
@@ -26,7 +26,7 @@ public:
~LineBucket() override;
void upload(gl::ObjectStore&) override;
- void render(Painter&, const StyleLayer&, const UnwrappedTileID&, const mat4&) override;
+ void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override;
bool hasData() const override;
bool needsClipping() const override;
diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp
index 486865dc78..ccc6e23408 100644
--- a/src/mbgl/renderer/painter.cpp
+++ b/src/mbgl/renderer/painter.cpp
@@ -7,11 +7,12 @@
#include <mbgl/gl/debugging.hpp>
#include <mbgl/style/style.hpp>
-#include <mbgl/style/style_layer.hpp>
+#include <mbgl/layer/layer_impl.hpp>
#include <mbgl/style/style_render_parameters.hpp>
#include <mbgl/layer/background_layer.hpp>
#include <mbgl/layer/custom_layer.hpp>
+#include <mbgl/layer/custom_layer_impl.hpp>
#include <mbgl/sprite/sprite_atlas.hpp>
#include <mbgl/geometry/line_atlas.hpp>
@@ -239,9 +240,9 @@ void Painter::renderPass(RenderPass pass_,
currentLayer = i;
const auto& item = *it;
- const StyleLayer& layer = item.layer;
+ const Layer& layer = item.layer;
- if (!layer.hasRenderPass(pass))
+ if (!layer.baseImpl->hasRenderPass(pass))
continue;
if (pass == RenderPass::Translucent) {
@@ -258,12 +259,12 @@ void Painter::renderPass(RenderPass pass_,
MBGL_DEBUG_GROUP("background");
renderBackground(*layer.as<BackgroundLayer>());
} else if (layer.is<CustomLayer>()) {
- MBGL_DEBUG_GROUP(layer.id + " - custom");
+ MBGL_DEBUG_GROUP(layer.baseImpl->id + " - custom");
VertexArrayObject::Unbind();
- layer.as<CustomLayer>()->render(state);
+ layer.as<CustomLayer>()->impl->render(state);
config.setDirty();
} else {
- MBGL_DEBUG_GROUP(layer.id + " - " + util::toString(item.tile->id));
+ MBGL_DEBUG_GROUP(layer.baseImpl->id + " - " + util::toString(item.tile->id));
if (item.bucket->needsClipping()) {
setClipping(item.tile->clip);
}
diff --git a/src/mbgl/renderer/painter.hpp b/src/mbgl/renderer/painter.hpp
index 70d5312b38..ad26457555 100644
--- a/src/mbgl/renderer/painter.hpp
+++ b/src/mbgl/renderer/painter.hpp
@@ -29,7 +29,6 @@
namespace mbgl {
class Style;
-class StyleLayer;
class Tile;
class SpriteAtlas;
class GlyphAtlas;
diff --git a/src/mbgl/renderer/painter_background.cpp b/src/mbgl/renderer/painter_background.cpp
index 3f01b74403..bc01d3c32f 100644
--- a/src/mbgl/renderer/painter_background.cpp
+++ b/src/mbgl/renderer/painter_background.cpp
@@ -1,6 +1,7 @@
#include <mbgl/renderer/painter.hpp>
#include <mbgl/layer/background_layer.hpp>
+#include <mbgl/layer/background_layer_impl.hpp>
#include <mbgl/shader/pattern_shader.hpp>
#include <mbgl/shader/plain_shader.hpp>
#include <mbgl/sprite/sprite_atlas.hpp>
@@ -12,7 +13,7 @@ using namespace mbgl;
void Painter::renderBackground(const BackgroundLayer& layer) {
// Note that for bottommost layers without a pattern, the background color is drawn with
// glClear rather than this method.
- const BackgroundPaintProperties& properties = layer.paint;
+ const BackgroundPaintProperties& properties = layer.impl->paint;
bool isPatterned = !properties.backgroundPattern.value.to.empty();// && false;
optional<SpriteAtlasPosition> imagePosA;
diff --git a/src/mbgl/renderer/painter_circle.cpp b/src/mbgl/renderer/painter_circle.cpp
index fe4348c362..c371f4debe 100644
--- a/src/mbgl/renderer/painter_circle.cpp
+++ b/src/mbgl/renderer/painter_circle.cpp
@@ -2,6 +2,7 @@
#include <mbgl/renderer/circle_bucket.hpp>
#include <mbgl/layer/circle_layer.hpp>
+#include <mbgl/layer/circle_layer_impl.hpp>
#include <mbgl/shader/circle_shader.hpp>
@@ -20,7 +21,7 @@ void Painter::renderCircle(CircleBucket& bucket,
config.depthMask = GL_FALSE;
setDepthSublayer(0);
- const CirclePaintProperties& properties = layer.paint;
+ const CirclePaintProperties& properties = layer.impl->paint;
mat4 vtxMatrix = translatedMatrix(matrix, properties.circleTranslate, tileID,
properties.circleTranslateAnchor);
diff --git a/src/mbgl/renderer/painter_fill.cpp b/src/mbgl/renderer/painter_fill.cpp
index 51cfa1b068..b499d20da3 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/fill_bucket.hpp>
#include <mbgl/layer/fill_layer.hpp>
+#include <mbgl/layer/fill_layer_impl.hpp>
#include <mbgl/sprite/sprite_atlas.hpp>
#include <mbgl/shader/outline_shader.hpp>
#include <mbgl/shader/outlinepattern_shader.hpp>
@@ -13,7 +14,7 @@ void Painter::renderFill(FillBucket& bucket,
const FillLayer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
- const FillPaintProperties& properties = layer.paint;
+ const FillPaintProperties& properties = layer.impl->paint;
mat4 vtxMatrix =
translatedMatrix(matrix, properties.fillTranslate, tileID, properties.fillTranslateAnchor);
diff --git a/src/mbgl/renderer/painter_line.cpp b/src/mbgl/renderer/painter_line.cpp
index d9e3d4037b..3cf1ad4147 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/line_bucket.hpp>
#include <mbgl/layer/line_layer.hpp>
+#include <mbgl/layer/line_layer_impl.hpp>
#include <mbgl/shader/line_shader.hpp>
#include <mbgl/shader/linesdf_shader.hpp>
#include <mbgl/shader/linepattern_shader.hpp>
@@ -23,7 +24,7 @@ void Painter::renderLine(LineBucket& bucket,
config.depthTest = GL_TRUE;
config.depthMask = GL_FALSE;
- const auto& properties = layer.paint;
+ const auto& properties = layer.impl->paint;
const auto& layout = bucket.layout;
// the distance over which the line edge fades out.
@@ -75,8 +76,8 @@ void Painter::renderLine(LineBucket& bucket,
LinePatternPos posA = lineAtlas->getDashPosition(properties.lineDasharray.value.from, layout.lineCap == LineCapType::Round, store);
LinePatternPos posB = lineAtlas->getDashPosition(properties.lineDasharray.value.to, layout.lineCap == LineCapType::Round, store);
- const float widthA = posA.width * properties.lineDasharray.value.fromScale * layer.dashLineWidth;
- const float widthB = posB.width * properties.lineDasharray.value.toScale * layer.dashLineWidth;
+ 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 scaleYA = -posA.height / 2.0;
diff --git a/src/mbgl/renderer/painter_raster.cpp b/src/mbgl/renderer/painter_raster.cpp
index 7f55e23ac2..511ac96387 100644
--- a/src/mbgl/renderer/painter_raster.cpp
+++ b/src/mbgl/renderer/painter_raster.cpp
@@ -2,6 +2,7 @@
#include <mbgl/gl/gl.hpp>
#include <mbgl/renderer/raster_bucket.hpp>
#include <mbgl/layer/raster_layer.hpp>
+#include <mbgl/layer/raster_layer_impl.hpp>
#include <mbgl/shader/raster_shader.hpp>
using namespace mbgl;
@@ -12,7 +13,7 @@ void Painter::renderRaster(RasterBucket& bucket,
const mat4& matrix) {
if (pass != RenderPass::Translucent) return;
- const RasterPaintProperties& properties = layer.paint;
+ const RasterPaintProperties& properties = layer.impl->paint;
if (bucket.hasData()) {
config.program = rasterShader->getID();
diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp
index 55d2e27c11..9774568074 100644
--- a/src/mbgl/renderer/painter_symbol.cpp
+++ b/src/mbgl/renderer/painter_symbol.cpp
@@ -110,7 +110,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
return;
}
- const auto& paint = layer.paint;
+ const auto& paint = layer.impl->paint;
const auto& layout = bucket.layout;
config.depthMask = GL_FALSE;
@@ -146,10 +146,10 @@ void Painter::renderSymbol(SymbolBucket& bucket,
? state.getAngle()
: 0;
- const float fontSize = layer.iconSize;
+ const float fontSize = layer.impl->iconSize;
const float fontScale = fontSize / 1.0f;
- SpriteAtlas* activeSpriteAtlas = layer.spriteAtlas;
+ SpriteAtlas* activeSpriteAtlas = layer.impl->spriteAtlas;
const bool iconScaled = fontScale != 1 || frame.pixelRatio != activeSpriteAtlas->getPixelRatio() || bucket.iconsNeedLinear;
const bool iconTransformed = layout.iconRotationAlignment == RotationAlignmentType::Map || angleOffset != 0 || state.getPitch() != 0;
config.activeTexture = GL_TEXTURE0;
@@ -172,7 +172,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
paint.iconHaloBlur,
paint.iconTranslate,
paint.iconTranslateAnchor,
- layer.iconSize);
+ layer.impl->iconSize);
} else {
mat4 vtxMatrix =
translatedMatrix(matrix, paint.iconTranslate, tileID, paint.iconTranslateAnchor);
@@ -235,7 +235,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
paint.textHaloBlur,
paint.textTranslate,
paint.textTranslateAnchor,
- layer.textSize);
+ layer.impl->textSize);
}
if (bucket.hasCollisionBoxData()) {
diff --git a/src/mbgl/renderer/raster_bucket.cpp b/src/mbgl/renderer/raster_bucket.cpp
index d6786969c9..b16d7f8161 100644
--- a/src/mbgl/renderer/raster_bucket.cpp
+++ b/src/mbgl/renderer/raster_bucket.cpp
@@ -17,7 +17,7 @@ void RasterBucket::upload(gl::ObjectStore& store) {
}
void RasterBucket::render(Painter& painter,
- const StyleLayer& layer,
+ const Layer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
painter.renderRaster(*this, *layer.as<RasterLayer>(), tileID, matrix);
diff --git a/src/mbgl/renderer/raster_bucket.hpp b/src/mbgl/renderer/raster_bucket.hpp
index 33956fedcd..9125ef2047 100644
--- a/src/mbgl/renderer/raster_bucket.hpp
+++ b/src/mbgl/renderer/raster_bucket.hpp
@@ -14,7 +14,7 @@ public:
RasterBucket(gl::TexturePool&);
void upload(gl::ObjectStore&) override;
- void render(Painter&, const StyleLayer&, const UnwrappedTileID&, const mat4&) override;
+ void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) 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 2f5af330a4..67c8468ecd 100644
--- a/src/mbgl/renderer/symbol_bucket.cpp
+++ b/src/mbgl/renderer/symbol_bucket.cpp
@@ -85,7 +85,7 @@ void SymbolBucket::upload(gl::ObjectStore& store) {
}
void SymbolBucket::render(Painter& painter,
- const StyleLayer& layer,
+ const Layer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
painter.renderSymbol(*this, *layer.as<SymbolLayer>(), tileID, matrix);
diff --git a/src/mbgl/renderer/symbol_bucket.hpp b/src/mbgl/renderer/symbol_bucket.hpp
index 268bcb7c77..b19a86b275 100644
--- a/src/mbgl/renderer/symbol_bucket.hpp
+++ b/src/mbgl/renderer/symbol_bucket.hpp
@@ -13,7 +13,7 @@
#include <mbgl/text/shaping.hpp>
#include <mbgl/text/quads.hpp>
#include <mbgl/style/filter.hpp>
-#include <mbgl/layer/symbol_layer.hpp>
+#include <mbgl/layer/symbol_layer_impl.hpp>
#include <memory>
#include <map>
@@ -70,7 +70,7 @@ public:
~SymbolBucket() override;
void upload(gl::ObjectStore&) override;
- void render(Painter&, const StyleLayer&, const UnwrappedTileID&, const mat4&) override;
+ void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override;
bool hasData() const override;
bool hasTextData() const;
bool hasIconData() const;