67 class GlyphDecoratorNode;
69 enum class AnchorPointGrouping : uint8_t {
96 void addFragment(Shaper::Fragment&,
sksg::Group* container);
97 void buildDomainMaps(
const Shaper::Result&);
98 std::vector<sk_sp<sksg::RenderNode>> buildGlyphCompNodes(Shaper::ShapedGlyphs&)
const;
100 void pushPropsToFragment(
const TextAnimator::ResolvedProps&,
const FragmentRec&,
101 const SkV2& frag_offset,
const SkV2& grouping_alignment,
102 const TextAnimator::DomainSpan*)
const;
104 SkV2 fragmentAnchorPoint(
const FragmentRec&,
const SkV2&,
105 const TextAnimator::DomainSpan*)
const;
106 uint32_t shaperFlags()
const;
108 SkM44 fragmentMatrix(
const TextAnimator::ResolvedProps&,
const FragmentRec&,
const SkV2&)
const;
115 const AnchorPointGrouping fAnchorPointGrouping;
117 std::vector<sk_sp<TextAnimator>> fAnimators;
118 std::vector<FragmentRec> fFragments;
119 TextAnimator::DomainMaps fMaps;
122 struct TextValueTracker {
125 bool hasChanged()
const {
126 if (fCurrentValue != fPrevValue) {
127 fPrevValue = fCurrentValue;
133 const TextValue* operator->()
const {
return &fCurrentValue; }
139 TextValueTracker fText;
141 float fTextShapingScale = 1;
145 std::unique_ptr<PathInfo> fPathInfo;
147 bool fHasBlurAnimator : 1,
148 fRequiresAnchorPoint : 1,
149 fRequiresLineAdjustments : 1;
const TextValue & getText() const
static sk_sp< TextAdapter > Make(const skjson::ObjectValue &, const AnimationBuilder *, sk_sp< SkFontMgr >, sk_sp< CustomFont::GlyphCompMapper >, sk_sp< Logger >, sk_sp<::SkShapers::Factory >)
const sk_sp< sksg::Group > & node() const
void setText(const TextValue &)