8#ifndef SkottiePriv_DEFINED
9#define SkottiePriv_DEFINED
90 bool matches(
const char family[],
const char style[])
const;
97 bool auto_orient =
false) const;
99 bool auto_orient =
false) const;
118 , fCurrentScope(
std::move(scope))
119 , fPrevScope(fBuilder->fCurrentAnimatorScope) {
120 fBuilder->fCurrentAnimatorScope = &fCurrentScope;
124 fBuilder->fCurrentAnimatorScope = fPrevScope;
127 return std::move(fCurrentScope);
138 template <
typename T>
140 if (adapter->isStatic()) {
144 fCurrentAnimatorScope->push_back(std::move(adapter));
148 template <
typename T,
typename... Args>
150 typename std::decay<decltype(T::Make(std::forward<Args>(
args)...)->node())>
::type
153 typename std::decay<decltype(T::Make(std::forward<Args>(
args)...)->node())>
::type;
156 if (
auto adapter =
T::Make(std::forward<Args>(
args)...)) {
157 node = adapter->node();
167 , fPrevContext(
builder->fPropertyObserverContext), fNodeType(node_type) {
168 if (fBuilder->fPropertyObserver) {
169 auto observer =
builder->fPropertyObserver.get();
170 this->updateContext(observer, obj);
171 observer->onEnterNode(fBuilder->fPropertyObserverContext, fNodeType);
176 if (fBuilder->fPropertyObserver) {
177 fBuilder->fPropertyObserver->onLeavingNode(fBuilder->fPropertyObserverContext, fNodeType);
178 fBuilder->fPropertyObserverContext = fPrevContext;
185 const char* fPrevContext;
209 struct AttachLayerContext;
211 struct FootageAssetInfo;
217 bool resolveNativeTypefaces();
226 bool suppress_draws =
false)
const;
231 const LayerInfo&)
const;
253 const float fDuration,
257 mutable const char* fPropertyObserverContext =
nullptr;
258 mutable bool fHasNontrivialBlending : 1;
262 const float fInPoint,
268 mutable bool fIsAttaching;
271 struct FootageAssetInfo {
276 class ScopedAssetRef {
282 fInfo->fIsAttaching =
false;
286 explicit operator bool()
const {
return !!fInfo; }
291 const AssetInfo* fInfo =
nullptr;
#define SK_PRINTF_LIKE(A, B)
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
AutoPropertyTracker(const AnimationBuilder *builder, const skjson::ObjectValue &obj, const PropertyObserver::NodeType node_type)
AutoScope(const AnimationBuilder *builder, AnimatorScope &&scope)
AutoScope(const AnimationBuilder *builder)
sk_sp< sksg::Path > attachPath(const skjson::Value &) const
bool dispatchOpacityProperty(const sk_sp< sksg::OpacityEffect > &) const
void sk_sp< sksg::Transform > attachMatrix2D(const skjson::ObjectValue &, sk_sp< sksg::Transform >, bool auto_orient=false) const
const skjson::ObjectValue * getSlotsRoot() const
sk_sp< sksg::RenderNode > attachOpacity(const skjson::ObjectValue &, sk_sp< sksg::RenderNode >) const
void parseFonts(const skjson::ObjectValue *jfonts, const skjson::ArrayValue *jchars)
bool dispatchTransformProperty(const sk_sp< TransformAdapter2D > &) const
bool dispatchColorProperty(const sk_sp< sksg::Color > &) const
bool hasNontrivialBlending() const
sk_sp< sksg::Transform > attachCamera(const skjson::ObjectValue &jlayer, const skjson::ObjectValue &jtransform, sk_sp< sksg::Transform >, const SkSize &) const
auto attachDiscardableAdapter(Args &&... args) const -> typename std::decay< decltype(T::Make(std::forward< Args >(args)...) ->node())>::type
void attachDiscardableAdapter(sk_sp< T > adapter) const
sk_sp< ExpressionManager > expression_manager() const
sk_sp< sksg::Transform > attachMatrix3D(const skjson::ObjectValue &, sk_sp< sksg::Transform >, bool auto_orient=false) const
void log(Logger::Level, const skjson::Value *, const char fmt[],...) const SK_PRINTF_LIKE(4
const FontInfo * findFont(const SkString &name) const
AnimationInfo parse(const skjson::ObjectValue &)
bool dispatchTextProperty(const sk_sp< TextAdapter > &, const skjson::ObjectValue *jtext) const
AnimationBuilder(sk_sp< ResourceProvider >, sk_sp< SkFontMgr >, sk_sp< PropertyObserver >, sk_sp< Logger >, sk_sp< MarkerObserver >, sk_sp< PrecompInterceptor >, sk_sp< ExpressionManager >, sk_sp< SkShapers::Factory >, Animation::Builder::Stats *, const SkSize &comp_size, float duration, float framerate, uint32_t flags)
void setRoot(sk_sp< sksg::RenderNode >)
FlutterSemanticsFlag flags
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
SK_API sk_sp< SkDocument > Make(SkWStream *dst, const SkSerialProcs *=nullptr, std::function< void(const SkPicture *)> onEndPage=nullptr)
SK_API sk_sp< SkShader > Color(SkColor)
DEF_SWITCHES_START aot vmservice shared library name
constexpr Color operator*(T value, const Color &c)
static constexpr float kBlurSizeToSigma
std::vector< sk_sp< Animator > > AnimatorScope
skgpu::graphite::Transform Transform
static SkString fmt(SkColor4f c)
sk_sp< sksg::RenderNode > fSceneRoot
sk_sp< SlotManager > fSlotManager
bool matches(const char family[], const char style[]) const
CustomFont::Builder fCustomFontBuilder
sk_sp< SkTypeface > fTypeface