summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_line_layer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/layers/render_line_layer.hpp')
-rw-r--r--src/mbgl/renderer/layers/render_line_layer.hpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/mbgl/renderer/layers/render_line_layer.hpp b/src/mbgl/renderer/layers/render_line_layer.hpp
index 1e0100548a..19ccccfb39 100644
--- a/src/mbgl/renderer/layers/render_line_layer.hpp
+++ b/src/mbgl/renderer/layers/render_line_layer.hpp
@@ -4,7 +4,8 @@
#include <mbgl/style/layers/line_layer_impl.hpp>
#include <mbgl/style/layers/line_layer_properties.hpp>
#include <mbgl/programs/uniforms.hpp>
-#include <mbgl/util/image.hpp>
+#include <mbgl/style/image_impl.hpp>
+#include <mbgl/layout/pattern_layout.hpp>
namespace mbgl {
@@ -16,16 +17,24 @@ class RenderLinePaintProperties : public style::ConcatenateProperties<
style::LinePaintProperties,
style::Properties<LineFloorwidth>> {};
+class LineBucket;
+
class RenderLineLayer: public RenderLayer {
public:
+ using StyleLayerImpl = style::LineLayer::Impl;
+ using PatternProperty = style::LinePattern;
+
RenderLineLayer(Immutable<style::LineLayer::Impl>);
~RenderLineLayer() final = default;
void transition(const TransitionParameters&) override;
void evaluate(const PropertyEvaluationParameters&) override;
bool hasTransition() const override;
+ bool hasCrossfade() const override;
void render(PaintParameters&, RenderSource*) override;
+ RenderLinePaintProperties::PossiblyEvaluated paintProperties() const;
+
bool queryIntersectsFeature(
const GeometryCoordinates&,
const GeometryTileFeature&,
@@ -37,7 +46,10 @@ public:
void updateColorRamp();
std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const override;
-
+ std::unique_ptr<PatternLayout<LineBucket>> createLayout(const BucketParameters&,
+ const std::vector<const RenderLayer*>&,
+ std::unique_ptr<GeometryTileLayer>,
+ ImageDependencies&) const;
// Paint properties
style::LinePaintProperties::Unevaluated unevaluated;
RenderLinePaintProperties::PossiblyEvaluated evaluated;
@@ -46,6 +58,7 @@ public:
private:
float getLineWidth(const GeometryTileFeature&, const float) const;
+ CrossfadeParameters crossfade;
PremultipliedImage colorRamp;
optional<gl::Texture> colorRampTexture;
};