Home | History | Annotate | Download | only in animator
      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);
     31 	SkAnimateMaker& getMaker() { return fMaker; }
     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