diff options
Diffstat (limited to 'src/mbgl/renderer/layers/render_line_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_line_layer.cpp | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index b40066f4c4..1b4a1c0ff7 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -1,6 +1,5 @@ #include <mbgl/renderer/layers/render_line_layer.hpp> #include <mbgl/renderer/buckets/line_bucket.hpp> -#include <mbgl/renderer/painter.hpp> #include <mbgl/renderer/render_tile.hpp> #include <mbgl/renderer/paint_parameters.hpp> #include <mbgl/renderer/image_manager.hpp> @@ -53,8 +52,8 @@ bool RenderLineLayer::hasTransition() const { return unevaluated.hasTransition(); } -void RenderLineLayer::render(Painter& painter, PaintParameters& parameters, RenderSource*) { - if (painter.pass == RenderPass::Opaque) { +void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { + if (parameters.pass == RenderPass::Opaque) { return; } @@ -64,18 +63,18 @@ void RenderLineLayer::render(Painter& painter, PaintParameters& parameters, Rend auto draw = [&] (auto& program, auto&& uniformValues) { program.get(evaluated).draw( - painter.context, + parameters.context, gl::Triangles(), - painter.depthModeForSublayer(0, gl::DepthMode::ReadOnly), - painter.stencilModeForClipping(tile.clip), - painter.colorModeForRenderPass(), + parameters.depthModeForSublayer(0, gl::DepthMode::ReadOnly), + parameters.stencilModeForClipping(tile.clip), + parameters.colorModeForRenderPass(), std::move(uniformValues), *bucket.vertexBuffer, *bucket.indexBuffer, bucket.segments, bucket.paintPropertyBinders.at(getID()), evaluated, - painter.state.getZoom(), + parameters.state.getZoom(), getID() ); }; @@ -83,38 +82,38 @@ void RenderLineLayer::render(Painter& painter, PaintParameters& parameters, Rend if (!evaluated.get<LineDasharray>().from.empty()) { const LinePatternCap cap = bucket.layout.get<LineCap>() == LineCapType::Round ? LinePatternCap::Round : LinePatternCap::Square; - LinePatternPos posA = painter.lineAtlas->getDashPosition(evaluated.get<LineDasharray>().from, cap); - LinePatternPos posB = painter.lineAtlas->getDashPosition(evaluated.get<LineDasharray>().to, cap); + LinePatternPos posA = parameters.lineAtlas.getDashPosition(evaluated.get<LineDasharray>().from, cap); + LinePatternPos posB = parameters.lineAtlas.getDashPosition(evaluated.get<LineDasharray>().to, cap); - painter.lineAtlas->bind(painter.context, 0); + parameters.lineAtlas.bind(parameters.context, 0); draw(parameters.programs.lineSDF, LineSDFProgram::uniformValues( evaluated, - painter.frame.pixelRatio, + parameters.pixelRatio, tile, - painter.state, - painter.pixelsToGLUnits, + parameters.state, + parameters.pixelsToGLUnits, posA, posB, - painter.lineAtlas->getSize().width)); + parameters.lineAtlas.getSize().width)); } else if (!evaluated.get<LinePattern>().from.empty()) { - optional<ImagePosition> posA = painter.imageManager->getPattern(evaluated.get<LinePattern>().from); - optional<ImagePosition> posB = painter.imageManager->getPattern(evaluated.get<LinePattern>().to); + optional<ImagePosition> posA = parameters.imageManager.getPattern(evaluated.get<LinePattern>().from); + optional<ImagePosition> posB = parameters.imageManager.getPattern(evaluated.get<LinePattern>().to); if (!posA || !posB) return; - painter.imageManager->bind(painter.context, 0); + parameters.imageManager.bind(parameters.context, 0); draw(parameters.programs.linePattern, LinePatternProgram::uniformValues( evaluated, tile, - painter.state, - painter.pixelsToGLUnits, - painter.imageManager->getPixelSize(), + parameters.state, + parameters.pixelsToGLUnits, + parameters.imageManager.getPixelSize(), *posA, *posB)); @@ -123,8 +122,8 @@ void RenderLineLayer::render(Painter& painter, PaintParameters& parameters, Rend LineProgram::uniformValues( evaluated, tile, - painter.state, - painter.pixelsToGLUnits)); + parameters.state, + parameters.pixelsToGLUnits)); } } } |