blob: 99a7a0a81a953facbfb43b27858b95f1511e57ba [file] [log] [blame]
#ifndef _RIVE_STROKE_HPP_
#define _RIVE_STROKE_HPP_
#include "rive/generated/shapes/paint/stroke_base.hpp"
#include "rive/shapes/path_flags.hpp"
namespace rive
{
class StrokeEffect;
class Stroke : public StrokeBase
{
private:
StrokeEffect* m_Effect = nullptr;
public:
RenderPaint* initRenderPaint(ShapePaintMutator* mutator) override;
PathFlags pathFlags() const override;
void draw(Renderer* renderer,
CommandPath* path,
const RawPath* rawPath,
RenderPaint* paint) override;
void addStrokeEffect(StrokeEffect* effect);
bool hasStrokeEffect() { return m_Effect != nullptr; }
void invalidateEffects();
bool isVisible() const override;
void invalidateRendering();
void applyTo(RenderPaint* renderPaint, float opacityModifier) const override;
protected:
void thicknessChanged() override;
void capChanged() override;
void joinChanged() override;
};
} // namespace rive
#endif