1 #ifndef _RIVE_LINEAR_GRADIENT_HPP_
2 #define _RIVE_LINEAR_GRADIENT_HPP_
3 #include "generated/shapes/paint/linear_gradient_base.hpp"
4 #include "math/vec2d.hpp"
5 #include "shapes/paint/shape_paint_mutator.hpp"
12 class LinearGradient : public LinearGradientBase, public ShapePaintMutator
15 std::vector<GradientStop*> m_Stops;
16 bool m_PaintsInWorldSpace;
17 Node* m_ShapePaintContainer = nullptr;
20 StatusCode onAddedDirty(CoreContext* context) override;
21 StatusCode onAddedClean(CoreContext* context) override
23 return StatusCode::Ok;
25 void addStop(GradientStop* stop);
26 void update(ComponentDirt value) override;
27 bool paintsInWorldSpace() const;
28 void paintsInWorldSpace(bool value);
29 void markGradientDirty();
30 void markStopsDirty();
33 void buildDependencies() override;
34 void startXChanged() override;
35 void startYChanged() override;
36 void endXChanged() override;
37 void endYChanged() override;
38 void opacityChanged() override;
39 void renderOpacityChanged() override;
40 virtual void makeGradient(const Vec2D& start, const Vec2D& end);