Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[core] Move fill-outline special case to FillLayer::Impl::evaluate
Browse files Browse the repository at this point in the history
  • Loading branch information
jfirebaugh committed Jan 6, 2017
1 parent b6894dd commit 0760d7e
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 1 addition & 5 deletions src/mbgl/renderer/painter_fill.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -102,7 +101,7 @@ void Painter::renderFill(PaintParameters& parameters,
state) },
uniforms::u_opacity::Value{ properties.get<FillOpacity>() },
uniforms::u_color::Value{ properties.get<FillColor>() },
uniforms::u_outline_color::Value{ outlineColor },
uniforms::u_outline_color::Value{ properties.get<FillOutlineColor>() },
uniforms::u_world::Value{ context.viewport.getCurrentValue().size },
},
vertexBuffer,
Expand All @@ -114,7 +113,6 @@ void Painter::renderFill(PaintParameters& parameters,
if (properties.get<FillAntialias>() && !layer.impl->paint.unevaluated.get<FillOutlineColor>().isUndefined() && pass == RenderPass::Translucent) {
draw(2,
parameters.programs.fillOutline,
properties.get<FillOutlineColor>(),
gl::Lines { 2.0f },
*bucket.vertexBuffer,
*bucket.lineIndexBuffer,
Expand All @@ -126,7 +124,6 @@ void Painter::renderFill(PaintParameters& parameters,
if ((properties.get<FillColor>().a >= 1.0f && properties.get<FillOpacity>() >= 1.0f) == (pass == RenderPass::Opaque)) {
draw(1,
parameters.programs.fill,
properties.get<FillOutlineColor>(),
gl::Triangles(),
*bucket.vertexBuffer,
*bucket.triangleIndexBuffer,
Expand All @@ -136,7 +133,6 @@ void Painter::renderFill(PaintParameters& parameters,
if (properties.get<FillAntialias>() && layer.impl->paint.unevaluated.get<FillOutlineColor>().isUndefined() && pass == RenderPass::Translucent) {
draw(2,
parameters.programs.fillOutline,
properties.get<FillColor>(),
gl::Lines { 2.0f },
*bucket.vertexBuffer,
*bucket.lineIndexBuffer,
Expand Down
4 changes: 4 additions & 0 deletions src/mbgl/style/layers/fill_layer_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<FillOutlineColor>().isUndefined()) {
paint.evaluated.get<FillOutlineColor>() = paint.evaluated.get<FillColor>();
}

passes = RenderPass::None;

if (paint.evaluated.get<FillAntialias>()) {
Expand Down

0 comments on commit 0760d7e

Please sign in to comment.