blob: 75724d621dc8d77d01dd9de083affe246b4f2ee1 [file] [log] [blame]
#ifndef _RIVE_GROUP_EFFECT_HPP_
#define _RIVE_GROUP_EFFECT_HPP_
#include "rive/generated/shapes/paint/group_effect_base.hpp"
#include "rive/shapes/paint/effects_container.hpp"
#include "rive/shapes/paint/stroke_effect.hpp"
#include <stdio.h>
namespace rive
{
class TargetEffect;
class StrokeEffect;
class GroupEffect : public GroupEffectBase,
public EffectsContainer,
public StrokeEffect
{
public:
void addTargetEffect(TargetEffect* effect);
void invalidateEffects(StrokeEffect* effect) override;
void invalidateEffects() override;
void updateEffect(PathProvider* pathProvider,
const ShapePaintPath* source,
const ShapePaint* shapePaint) override;
EffectsContainer* parentPaint() override;
void addPathProvider(PathProvider* component) override;
void addStrokeEffect(StrokeEffect* effect) override;
void invalidateEffect(PathProvider* effect) override;
void buildDependencies() override;
private:
std::vector<TargetEffect*> m_targetEffects;
};
} // namespace rive
#endif