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