[core] Move fill-outline special case to FillLayer::Impl::evaluate
This commit is contained in:
@@ -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<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,
|
||||
@@ -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,
|
||||
@@ -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,
|
||||
@@ -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,
|
||||
|
||||
@@ -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>()) {
|
||||
|
||||
Reference in New Issue
Block a user