| |
| /* |
| * 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 |