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