8#ifndef SkottieProperty_DEFINED
9#define SkottieProperty_DEFINED
120namespace internal {
class SceneGraphRevalidator; }
126template <
typename ValueT,
typename NodeT>
131 : fNode(
std::move(node))
132 , fRevalidator(
std::move(revalidator)) {}
148class TransformAdapter2D;
171 enum class NodeType {COMPOSITION, LAYER, EFFECT, OTHER};
173 template <
typename T>
176 virtual void onColorProperty (
const char node_name[],
178 virtual void onOpacityProperty (
const char node_name[],
180 virtual void onTextProperty (
const char node_name[],
182 virtual void onTransformProperty(
const char node_name[],
184 virtual void onEnterNode(
const char node_name[],
NodeType node_type);
185 virtual void onLeavingNode(
const char node_name[],
NodeType node_type);
constexpr SkColor SK_ColorTRANSPARENT
virtual void onDecorate(SkCanvas *, const TextInfo &)=0
PropertyHandle(sk_sp< NodeT > node, sk_sp< internal::SceneGraphRevalidator > revalidator)
PropertyHandle(const PropertyHandle &)
PropertyHandle(sk_sp< NodeT >)
std::function< std::unique_ptr< T >()> LazyHandle
static float max(float r, float g, float b)
SK_API sk_sp< SkShader > Color(SkColor)
const myers::Point & get(const myers::Segment &)
float OpacityPropertyValue
SkColor ColorPropertyValue
static constexpr SkRect MakeEmpty()
SkSpan< const GlyphInfo > fGlyphs
sk_sp< SkTypeface > fTypeface
SkPaint::Join fStrokeJoin
Shaper::Direction fDirection
bool operator!=(const TextPropertyValue &other) const
bool operator==(const TextPropertyValue &other) const
Shaper::LinebreakPolicy fLineBreak
sk_sp< GlyphDecorator > fDecorator
TextPaintOrder fPaintOrder
Shaper::Capitalization fCapitalization
Shaper::ResizePolicy fResize
SkTextUtils::Align fHAlign