| #ifndef _RIVE_LINEAR_GRADIENT_HPP_ | |
| #define _RIVE_LINEAR_GRADIENT_HPP_ | |
| #include "rive/generated/shapes/paint/linear_gradient_base.hpp" | |
| #include "rive/math/vec2d.hpp" | |
| #include "rive/shapes/paint/color.hpp" | |
| #include "rive/shapes/paint/shape_paint_mutator.hpp" | |
| #include <vector> | |
| namespace rive | |
| { | |
| class Node; | |
| class GradientStop; | |
| class LinearGradient : public LinearGradientBase, public ShapePaintMutator | |
| { | |
| private: | |
| std::vector<GradientStop*> m_Stops; | |
| Node* m_ShapePaintContainer = nullptr; | |
| public: | |
| StatusCode onAddedDirty(CoreContext* context) override; | |
| void addStop(GradientStop* stop); | |
| void update(ComponentDirt value) override; | |
| void markGradientDirty(); | |
| void markStopsDirty(); | |
| protected: | |
| void buildDependencies() override; | |
| void startXChanged() override; | |
| void startYChanged() override; | |
| void endXChanged() override; | |
| void endYChanged() override; | |
| void opacityChanged() override; | |
| void renderOpacityChanged() override; | |
| bool internalIsTranslucent() const override; | |
| virtual void | |
| makeGradient(Vec2D start, Vec2D end, const ColorInt[], const float[], size_t count); | |
| }; | |
| } // namespace rive | |
| #endif |