bool SkDisplayEvent::enableEvent(SkAnimateMaker& maker) { maker.fActiveEvent = this; if (fChildren.count() == 0) return false; if (disable) return false; #ifdef SK_DUMP_ENABLED if (maker.fDumpEvents) { SkDebugf("enable: "); dumpEvent(&maker); } #endif SkDisplayList& displayList = maker.fDisplayList; for (int index = 0; index < fChildren.count(); index++) { SkDisplayable* displayable = fChildren[index]; if (displayable->isGroup()) { SkTDDrawableArray* parentList = displayList.getDrawList(); *parentList->append() = (SkADrawable*) displayable; // make it findable before children are enabled } if (displayable->enable(maker)) continue; if (maker.hasError()) return true; if (displayable->isDrawable() == false) return true; // error SkADrawable* drawable = (SkADrawable*) displayable; SkTDDrawableArray* parentList = displayList.getDrawList(); *parentList->append() = drawable; } return false; }
bool SkAnimate::resolveCommon(SkAnimateMaker& maker) { if (fTarget == NULL) // if NULL, recall onEndElement after apply closes and sets target to scope return false; INHERITED::onEndElement(maker); return maker.hasError() == false; }