1 #ifndef SkAnimatorScript2_DEFINED 2 #define SkAnimatorScript2_DEFINED 3 4 #include "SkDisplayable.h" 5 #include "SkScript2.h" 6 #include "SkTypedArray.h" 7 8 class SkAnimateMaker; 9 struct SkMemberInfo; 10 11 #ifndef SkAnimatorScript_DEFINED 12 struct SkDisplayEnumMap { 13 SkDisplayTypes fType; 14 const char* fValues; 15 }; 16 #endif 17 18 class SkAnimatorScript2 : public SkScriptEngine2 { 19 public: 20 SkAnimatorScript2(SkAnimateMaker& , SkDisplayable* working, SkDisplayTypes type); 21 ~SkAnimatorScript2(); 22 bool evalMemberCommon(const SkMemberInfo* info, 23 SkDisplayable* displayable, SkOperand2* value); 24 SkAnimateMaker& getMaker() { return fMaker; } 25 SkDisplayable* getWorking() { return fWorking; } 26 static bool MapEnums(const char* ptr, const char* match, size_t len, int* value); 27 static const SkDisplayEnumMap& GetEnumValues(SkDisplayTypes type); 28 static SkDisplayTypes ToDisplayType(SkOperand2::OpType type); 29 static SkOperand2::OpType ToOpType(SkDisplayTypes type); 30 private: 31 SkAnimateMaker& fMaker; 32 SkDisplayable* fWorking; 33 friend class SkDump; 34 friend struct SkScriptNAnswer; 35 // illegal 36 SkAnimatorScript2& operator=(const SkAnimatorScript2&); 37 #ifdef SK_DEBUG 38 public: 39 static void UnitTest(); 40 #endif 41 }; 42 43 #endif // SkAnimatorScript2_DEFINED 44