blob: 30aeabd17df7413ecf573c5ce5fec5568274c96c [file] [log] [blame]
#ifndef _RIVE_TARGET_EFFECT_HPP_
#define _RIVE_TARGET_EFFECT_HPP_
#include "rive/generated/shapes/paint/target_effect_base.hpp"
#include "rive/shapes/paint/stroke_effect.hpp"
#include <stdio.h>
namespace rive
{
class GroupEffect;
class TargetEffectPath : public EffectPath
{
public:
PathProvider* pathProviderProxy() { return &m_pathProviderProxy; }
private:
PathProvider m_pathProviderProxy;
};
class TargetEffect : public TargetEffectBase, public StrokeEffect
{
public:
StatusCode onAddedClean(CoreContext* context) override;
void updateEffect(PathProvider* pathProvider,
const ShapePaintPath* source,
const ShapePaint* shapePaint) override;
ShapePaintPath* effectPath(PathProvider* pathProvider) override;
EffectsContainer* parentPaint() override;
void addPathProvider(PathProvider* component) override;
void invalidateEffect(PathProvider* component) override;
protected:
virtual EffectPath* createEffectPath() override;
private:
GroupEffect* m_groupEffect = nullptr;
};
} // namespace rive
#endif