| #include "rive/shapes/paint/fill.hpp" |
| #include "rive/shapes/shape_paint_container.hpp" |
| |
| using namespace rive; |
| |
| PathFlags Fill::pathFlags() const |
| { |
| return (FillRule)fillRule() == FillRule::clockwise |
| ? PathFlags::localClockwise |
| : PathFlags::local; |
| } |
| |
| RenderPaint* Fill::initRenderPaint(ShapePaintMutator* mutator) |
| { |
| auto renderPaint = Super::initRenderPaint(mutator); |
| renderPaint->style(RenderPaintStyle::fill); |
| return renderPaint; |
| } |
| |
| void Fill::applyTo(RenderPaint* renderPaint, float opacityModifier) |
| { |
| renderPaint->style(RenderPaintStyle::fill); |
| renderPaint->shader(nullptr); |
| m_PaintMutator->applyTo(renderPaint, opacityModifier); |
| } |
| |
| ShapePaintPath* Fill::pickPath(ShapePaintContainer* shape) const |
| { |
| if ((FillRule)fillRule() == FillRule::clockwise) |
| { |
| return shape->localClockwisePath(); |
| } |
| return shape->localPath(); |
| } |
| |
| void Fill::buildDependencies() |
| { |
| if (effects()->size() > 0) |
| { |
| auto container = ShapePaintContainer::from(parent()); |
| if (container != nullptr) |
| { |
| container->pathBuilder()->addDependent(this); |
| } |
| } |
| } |