| #ifndef _RIVE_STROKE_HPP_ |
| #define _RIVE_STROKE_HPP_ |
| #include "rive/generated/shapes/paint/stroke_base.hpp" |
| #include "rive/shapes/path_space.hpp" |
| namespace rive |
| { |
| class StrokeEffect; |
| class Stroke : public StrokeBase |
| { |
| private: |
| StrokeEffect* m_Effect = nullptr; |
| |
| public: |
| RenderPaint* initRenderPaint(ShapePaintMutator* mutator) override; |
| PathSpace pathSpace() const override; |
| void draw(Renderer* renderer, CommandPath* path, 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 |