Home | History | Annotate | Download | only in animator
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #ifndef SkDisplayApply_DEFINED
     11 #define SkDisplayApply_DEFINED
     12 
     13 #include "SkAnimateBase.h"
     14 #include "SkADrawable.h"
     15 #include "SkIntArray.h"
     16 
     17 class SkActive;
     18 
     19 class SkApply : public SkADrawable {
     20     DECLARE_MEMBER_INFO(Apply);
     21 public:
     22 
     23     SkApply();
     24     virtual ~SkApply();
     25 
     26     enum Transition {
     27         kTransition_normal,
     28         kTransition_reverse
     29     };
     30 
     31     enum Mode {
     32         kMode_create,
     33         kMode_immediate,
     34         //kMode_once
     35     };
     36     void activate(SkAnimateMaker& );
     37     void append(SkApply* apply);
     38     void appendActive(SkActive* );
     39     void applyValues(int animatorIndex, SkOperand* values, int count,
     40         SkDisplayTypes , SkMSec time);
     41     bool contains(SkDisplayable*) override;
     42 //  void createActive(SkAnimateMaker& );
     43     SkDisplayable* deepCopy(SkAnimateMaker* ) override;
     44     void disable();
     45     bool draw(SkAnimateMaker& ) override;
     46 #ifdef SK_DUMP_ENABLED
     47     void dump(SkAnimateMaker* ) override;
     48 #endif
     49     bool enable(SkAnimateMaker& ) override;
     50     void enableCreate(SkAnimateMaker& );
     51     void enableDynamic(SkAnimateMaker& );
     52     void endSave(int index);
     53     Mode getMode() { return mode; }
     54     bool getProperty(int index, SkScriptValue* value) const override;
     55     SkADrawable* getScope() { return scope; }
     56     void getStep(SkScriptValue* );
     57     SkADrawable* getTarget(SkAnimateBase* );
     58     bool hasDelayedAnimator() const;
     59     bool hasEnable() const override;
     60     bool inactivate(SkAnimateMaker& maker);
     61     void initialize() override;
     62     bool interpolate(SkAnimateMaker& , SkMSec time);
     63     void onEndElement(SkAnimateMaker& ) override;
     64     const SkMemberInfo* preferredChild(SkDisplayTypes type) override;
     65     void refresh(SkAnimateMaker& );
     66     void reset();
     67     bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* ) override;
     68     bool resolveField(SkAnimateMaker& , SkDisplayable* parent, SkString* str);
     69     void save(int index);
     70     void setEmbedded() { fEmbedded = true; }
     71     bool setProperty(int index, SkScriptValue& ) override;
     72     void setSteps(int _steps) override;
     73 //  virtual void setTime(SkMSec time);
     74 #ifdef SK_DEBUG
     75     void validate() override;
     76 #endif
     77 private:
     78     SkMSec begin;
     79     SkBool dontDraw;
     80     SkString dynamicScope;
     81     SkMSec interval;
     82     Mode mode;
     83 #if 0
     84     SkBool pickup;
     85 #endif
     86     SkBool restore;
     87     SkADrawable* scope;
     88     int32_t steps;
     89     Transition transition;
     90     SkActive* fActive;
     91     SkTDAnimateArray fAnimators;
     92 //  SkADrawable* fCurrentScope;
     93     SkMSec fLastTime;   // used only to return script property time
     94     SkTDDrawableArray fScopes;
     95     SkBool fAppended : 1;
     96     SkBool fContainsScope : 1;
     97     SkBool fDeleteScope : 1;
     98     SkBool fEmbedded : 1;
     99     SkBool fEnabled : 1;
    100     SkBool fEnabling : 1; // set if calling interpolate from enable
    101     friend class SkActive;
    102     friend class SkDisplayList;
    103     typedef SkADrawable INHERITED;
    104 };
    105 
    106 #endif // SkDisplayApply_DEFINED
    107