diff --git a/src/mbgl/renderer/painter_fill.cpp b/src/mbgl/renderer/painter_fill.cpp index 356ccfc0b20..f4e73f94ac6 100644 --- a/src/mbgl/renderer/painter_fill.cpp +++ b/src/mbgl/renderer/painter_fill.cpp @@ -85,7 +85,6 @@ void Painter::renderFill(PaintParameters& parameters, } else { auto draw = [&] (uint8_t sublayer, auto& program, - Color outlineColor, const auto& drawMode, const auto& vertexBuffer, const auto& indexBuffer, @@ -102,7 +101,7 @@ void Painter::renderFill(PaintParameters& parameters, state) }, uniforms::u_opacity::Value{ properties.get() }, uniforms::u_color::Value{ properties.get() }, - uniforms::u_outline_color::Value{ outlineColor }, + uniforms::u_outline_color::Value{ properties.get() }, uniforms::u_world::Value{ context.viewport.getCurrentValue().size }, }, vertexBuffer, @@ -114,7 +113,6 @@ void Painter::renderFill(PaintParameters& parameters, if (properties.get() && !layer.impl->paint.unevaluated.get().isUndefined() && pass == RenderPass::Translucent) { draw(2, parameters.programs.fillOutline, - properties.get(), gl::Lines { 2.0f }, *bucket.vertexBuffer, *bucket.lineIndexBuffer, @@ -126,7 +124,6 @@ void Painter::renderFill(PaintParameters& parameters, if ((properties.get().a >= 1.0f && properties.get() >= 1.0f) == (pass == RenderPass::Opaque)) { draw(1, parameters.programs.fill, - properties.get(), gl::Triangles(), *bucket.vertexBuffer, *bucket.triangleIndexBuffer, @@ -136,7 +133,6 @@ void Painter::renderFill(PaintParameters& parameters, if (properties.get() && layer.impl->paint.unevaluated.get().isUndefined() && pass == RenderPass::Translucent) { draw(2, parameters.programs.fillOutline, - properties.get(), gl::Lines { 2.0f }, *bucket.vertexBuffer, *bucket.lineIndexBuffer, diff --git a/src/mbgl/style/layers/fill_layer_impl.cpp b/src/mbgl/style/layers/fill_layer_impl.cpp index 51636820f02..1ff26aa003c 100644 --- a/src/mbgl/style/layers/fill_layer_impl.cpp +++ b/src/mbgl/style/layers/fill_layer_impl.cpp @@ -15,6 +15,10 @@ void FillLayer::Impl::cascade(const CascadeParameters& parameters) { bool FillLayer::Impl::evaluate(const PropertyEvaluationParameters& parameters) { paint.evaluate(parameters); + if (paint.unevaluated.get().isUndefined()) { + paint.evaluated.get() = paint.evaluated.get(); + } + passes = RenderPass::None; if (paint.evaluated.get()) {