diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/animator/SkScriptCallBack.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/animator/SkScriptCallBack.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,67 @@ + +/* + * 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 SkScriptCallBack_DEFINED +#define SkScriptCallBack_DEFINED + +#include "SkOperand2.h" +#include "SkTDArray_Experimental.h" + +class SkScriptCallBack { +public: + virtual ~SkScriptCallBack() { } + + enum Type { + kBox, + kFunction, + kMember, + kMemberFunction, + kProperty, + kUnbox + }; + + virtual bool getReference(const char* , size_t len, SkScriptValue2* result) { return false; } + virtual SkOperand2::OpType getReturnType(size_t ref, SkOperand2*) { + return SkOperand2::kS32; } + virtual Type getType() const = 0; +}; + +class SkScriptCallBackConvert : public SkScriptCallBack { +public: + virtual bool convert(SkOperand2::OpType type, SkOperand2* operand) = 0; +}; + +class SkScriptCallBackFunction : public SkScriptCallBack { +public: + virtual void getParamTypes(SkIntArray(SkOperand2::OpType)* types) = 0; + virtual Type getType() const { return kFunction; } + virtual bool invoke(size_t ref, SkOpArray* params, SkOperand2* value) = 0; +}; + +class SkScriptCallBackMember: public SkScriptCallBack { +public: + bool getMemberReference(const char* , size_t len, void* object, SkScriptValue2* ref); + virtual Type getType() const { return kMember; } + virtual bool invoke(size_t ref, void* object, SkOperand2* value) = 0; +}; + +class SkScriptCallBackMemberFunction : public SkScriptCallBack { +public: + bool getMemberReference(const char* , size_t len, void* object, SkScriptValue2* ref); + virtual void getParamTypes(SkIntArray(SkOperand2::OpType)* types) = 0; + virtual Type getType() const { return kMemberFunction; } + virtual bool invoke(size_t ref, void* object, SkOpArray* params, SkOperand2* value) = 0; +}; + +class SkScriptCallBackProperty : public SkScriptCallBack { +public: + virtual bool getConstValue(const char* name, size_t len, SkOperand2* value) { return false; } + virtual bool getResult(size_t ref, SkOperand2* answer) { return false; } + virtual Type getType() const { return kProperty; } +}; + +#endif // SkScriptCallBack_DEFINED