| /* | |
| * Copyright 2011 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkAnimatorScript2_DEFINED | |
| #define SkAnimatorScript2_DEFINED | |
| #include "SkDisplayable.h" | |
| #include "SkScript2.h" | |
| #include "SkTypedArray.h" | |
| class SkAnimateMaker; | |
| struct SkMemberInfo; | |
| #ifndef SkAnimatorScript_DEFINED | |
| struct SkDisplayEnumMap { | |
| SkDisplayTypes fType; | |
| const char* fValues; | |
| }; | |
| #endif | |
| class SkAnimatorScript2 : public SkScriptEngine2 { | |
| public: | |
| SkAnimatorScript2(SkAnimateMaker& , SkDisplayable* working, SkDisplayTypes type); | |
| ~SkAnimatorScript2(); | |
| bool evalMemberCommon(const SkMemberInfo* info, | |
| SkDisplayable* displayable, SkOperand2* value); | |
| SkAnimateMaker& getMaker() { return fMaker; } | |
| SkDisplayable* getWorking() { return fWorking; } | |
| static bool MapEnums(const char* ptr, const char* match, size_t len, int* value); | |
| static const SkDisplayEnumMap& GetEnumValues(SkDisplayTypes type); | |
| static SkDisplayTypes ToDisplayType(SkOperand2::OpType type); | |
| static SkOperand2::OpType ToOpType(SkDisplayTypes type); | |
| private: | |
| SkAnimateMaker& fMaker; | |
| SkDisplayable* fWorking; | |
| friend class SkDump; | |
| friend struct SkScriptNAnswer; | |
| // illegal | |
| SkAnimatorScript2& operator=(const SkAnimatorScript2&); | |
| #ifdef SK_DEBUG | |
| public: | |
| static void UnitTest(); | |
| #endif | |
| }; | |
| #endif // SkAnimatorScript2_DEFINED |