1685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 2685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com/* 3685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Copyright 2011 Google Inc. 4685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * 5685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * found in the LICENSE file. 7685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com */ 8bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#ifndef SkAnimatorScript2_DEFINED 9bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#define SkAnimatorScript2_DEFINED 10bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 11bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkDisplayable.h" 12bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkScript2.h" 13bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkTypedArray.h" 14bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 15bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comclass SkAnimateMaker; 16bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comstruct SkMemberInfo; 17bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 18bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#ifndef SkAnimatorScript_DEFINED 19bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comstruct SkDisplayEnumMap { 20dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkDisplayTypes fType; 21dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com const char* fValues; 22bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com}; 23bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif 24bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 25bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comclass SkAnimatorScript2 : public SkScriptEngine2 { 26bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.compublic: 27dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkAnimatorScript2(SkAnimateMaker& , SkDisplayable* working, SkDisplayTypes type); 28dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com ~SkAnimatorScript2(); 29dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com bool evalMemberCommon(const SkMemberInfo* info, 30dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkDisplayable* displayable, SkOperand2* value); 31dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkAnimateMaker& getMaker() { return fMaker; } 32dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkDisplayable* getWorking() { return fWorking; } 33dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com static bool MapEnums(const char* ptr, const char* match, size_t len, int* value); 34dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com static const SkDisplayEnumMap& GetEnumValues(SkDisplayTypes type); 35dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com static SkDisplayTypes ToDisplayType(SkOperand2::OpType type); 36dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com static SkOperand2::OpType ToOpType(SkDisplayTypes type); 37bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comprivate: 38dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkAnimateMaker& fMaker; 39dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkDisplayable* fWorking; 40dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com friend class SkDump; 41dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com friend struct SkScriptNAnswer; 42dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com // illegal 43dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkAnimatorScript2& operator=(const SkAnimatorScript2&); 44bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#ifdef SK_DEBUG 45bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.compublic: 46dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com static void UnitTest(); 47bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif 48bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com}; 49bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 50bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif // SkAnimatorScript2_DEFINED 51