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 SkScriptRuntime_DEFINED 9bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#define SkScriptRuntime_DEFINED 10bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 11bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkOperand2.h" 12bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkTDArray_Experimental.h" 13bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkTDStack.h" 14bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 15bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comclass SkScriptCallBack; 16bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 17dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.comtypedef SkLongArray(SkString*) SkTDStringArray; 18dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.comtypedef SkLongArray(SkScriptCallBack*) SkTDScriptCallBackArray; 19bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 20bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comclass SkScriptRuntime { 21bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.compublic: 22dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com enum SkError { 23dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com kNoError, 24dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com kArrayIndexOutOfBounds, 25dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com kCouldNotFindReferencedID, 26dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com kFunctionCallFailed, 27dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com kMemberOpFailed, 28dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com kPropertyOpFailed 29dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com }; 30bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 31dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkScriptRuntime(SkTDScriptCallBackArray& callBackArray) : fCallBackArray(callBackArray) 32dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com { } 33dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com ~SkScriptRuntime(); 34dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com bool executeTokens(unsigned char* opCode); 35dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com bool getResult(SkOperand2* result); 36dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com void untrack(SkOpArray* array); 37dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com void untrack(SkString* string); 38bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comprivate: 39dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com void track(SkOpArray* array); 40dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com void track(SkString* string); 41dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkTDScriptCallBackArray& fCallBackArray; 42dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkError fError; 43dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkTDStack<SkOperand2> fRunStack; 44dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkLongArray(SkOpArray*) fTrackArray; 45dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkTDStringArray fTrackString; 46dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com // illegal 47dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com SkScriptRuntime& operator=(const SkScriptRuntime&); 48bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com}; 49bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 50a69e8290f92bd5db5fd48c570e8b53a5b4c2e3a2caryclark@google.com#endif // SkScriptRuntime_DEFINED 51