180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* 380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2011 Google Inc. 480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be 680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file. 780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */ 880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef SkAnimatorScript2_DEFINED 980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define SkAnimatorScript2_DEFINED 1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkDisplayable.h" 1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkScript2.h" 1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkTypedArray.h" 1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkAnimateMaker; 1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querustruct SkMemberInfo; 1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef SkAnimatorScript_DEFINED 1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querustruct SkDisplayEnumMap { 2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDisplayTypes fType; 2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru const char* fValues; 2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruclass SkAnimatorScript2 : public SkScriptEngine2 { 2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkAnimatorScript2(SkAnimateMaker& , SkDisplayable* working, SkDisplayTypes type); 2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru ~SkAnimatorScript2(); 2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru bool evalMemberCommon(const SkMemberInfo* info, 3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDisplayable* displayable, SkOperand2* value); 3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkAnimateMaker& getMaker() { return fMaker; } 3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDisplayable* getWorking() { return fWorking; } 3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru static bool MapEnums(const char* ptr, const char* match, size_t len, int* value); 3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru static const SkDisplayEnumMap& GetEnumValues(SkDisplayTypes type); 3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru static SkDisplayTypes ToDisplayType(SkOperand2::OpType type); 3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru static SkOperand2::OpType ToOpType(SkDisplayTypes type); 3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruprivate: 3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkAnimateMaker& fMaker; 3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkDisplayable* fWorking; 4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru friend class SkDump; 4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru friend struct SkScriptNAnswer; 4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru // illegal 4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru SkAnimatorScript2& operator=(const SkAnimatorScript2&); 4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef SK_DEBUG 4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querupublic: 4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru static void UnitTest(); 4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif 4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}; 4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru 5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif // SkAnimatorScript2_DEFINED 51