Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: skia/animator/SkScript2.h

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/animator/SkScript.cpp ('k') | skia/animator/SkScriptCallBack.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/animator/SkScript2.h
===================================================================
--- skia/animator/SkScript2.h (revision 16859)
+++ skia/animator/SkScript2.h (working copy)
@@ -1,285 +0,0 @@
-#ifndef SkScript2_DEFINED
-#define SkScript2_DEFINED
-
-#include "SkOperand2.h"
-#include "SkStream.h"
-#include "SkTDArray.h"
-#include "SkTDArray_Experimental.h"
-#include "SkTDict.h"
-#include "SkTDStack.h"
-
-typedef SkLongArray(SkString*) SkTDStringArray;
-
-class SkAnimateMaker;
-class SkScriptCallBack;
-
-class SkScriptEngine2 {
-public:
- enum Error {
- kNoError,
- kArrayIndexOutOfBounds,
- kCouldNotFindReferencedID,
- kFunctionCallFailed,
- kMemberOpFailed,
- kPropertyOpFailed
- };
-
- enum Attrs {
- kConstant,
- kVariable
- };
-
- SkScriptEngine2(SkOperand2::OpType returnType);
- ~SkScriptEngine2();
- bool convertTo(SkOperand2::OpType , SkScriptValue2* );
- bool evaluateScript(const char** script, SkScriptValue2* value);
- void forget(SkOpArray* array);
- Error getError() { return fError; }
- SkOperand2::OpType getReturnType() { return fReturnType; }
- void track(SkOpArray* array) {
- SkASSERT(fTrackArray.find(array) < 0);
- *fTrackArray.append() = array; }
- void track(SkString* string) {
- SkASSERT(fTrackString.find(string) < 0);
- *fTrackString.append() = string;
- }
- static bool ConvertTo(SkScriptEngine2* , SkOperand2::OpType toType, SkScriptValue2* value);
- static SkScalar IntToScalar(int32_t );
- static bool ValueToString(const SkScriptValue2& value, SkString* string);
-
- enum Op { // used by tokenizer attribute table
- kUnassigned,
- kAdd,
- kBitAnd,
- kBitNot,
- kBitOr,
- kDivide,
- kEqual,
- kFlipOps,
- kGreaterEqual,
- kLogicalAnd,
- kLogicalNot,
- kLogicalOr,
- kMinus,
- kModulo,
- kMultiply,
- kShiftLeft,
- kShiftRight, // signed
- kSubtract,
- kXor,
-// following not in attribute table
- kArrayOp,
- kElse,
- kIf,
- kParen,
- kLastLogicalOp,
- kArtificialOp = 0x20
- };
-
- enum TypeOp { // generated by tokenizer
- kNop, // should never get generated
- kAccumulatorPop,
- kAccumulatorPush,
- kAddInt,
- kAddScalar,
- kAddString, // string concat
- kArrayIndex,
- kArrayParam,
- kArrayToken,
- kBitAndInt,
- kBitNotInt,
- kBitOrInt,
- kBoxToken,
- kCallback,
- kDivideInt,
- kDivideScalar,
- kDotOperator,
- kElseOp,
- kEnd,
- kEqualInt,
- kEqualScalar,
- kEqualString,
- kFunctionCall,
- kFlipOpsOp,
- kFunctionToken,
- kGreaterEqualInt,
- kGreaterEqualScalar,
- kGreaterEqualString,
- kIfOp,
- kIntToScalar,
- kIntToScalar2,
- kIntToString,
- kIntToString2,
- kIntegerAccumulator,
- kIntegerOperand,
- kLogicalAndInt,
- kLogicalNotInt,
- kLogicalOrInt,
- kMemberOp,
- kMinusInt,
- kMinusScalar,
- kModuloInt,
- kModuloScalar,
- kMultiplyInt,
- kMultiplyScalar,
- kPropertyOp,
- kScalarAccumulator,
- kScalarOperand,
- kScalarToInt,
- kScalarToInt2,
- kScalarToString,
- kScalarToString2,
- kShiftLeftInt,
- kShiftRightInt, // signed
- kStringAccumulator,
- kStringOperand,
- kStringToInt,
- kStringToScalar,
- kStringToScalar2,
- kStringTrack,
- kSubtractInt,
- kSubtractScalar,
- kToBool,
- kUnboxToken,
- kUnboxToken2,
- kXorInt,
- kLastTypeOp
- };
-
- enum OpBias {
- kNoBias,
- kTowardsNumber = 0,
- kTowardsString
- };
-
-protected:
-
- enum BraceStyle {
- // kStructBrace,
- kArrayBrace,
- kFunctionBrace
- };
-
- enum AddTokenRegister {
- kAccumulator,
- kOperand
- };
-
- enum ResultIsBoolean {
- kResultIsNotBoolean,
- kResultIsBoolean
- };
-
- struct OperatorAttributes {
- unsigned int fLeftType : 3; // SkOpType union, but only lower values
- unsigned int fRightType : 3; // SkOpType union, but only lower values
- OpBias fBias : 1;
- ResultIsBoolean fResultIsBoolean : 1;
- };
-
- struct Branch {
- Branch() {
- }
-
- Branch(Op op, int depth, unsigned offset) : fOffset(offset), fOpStackDepth(depth), fOperator(op),
- fPrimed(kIsNotPrimed), fDone(kIsNotDone) {
- }
-
- enum Primed {
- kIsNotPrimed,
- kIsPrimed
- };
-
- enum Done {
- kIsNotDone,
- kIsDone,
- };
-
- unsigned fOffset : 16; // offset in generated stream where branch needs to go
- int fOpStackDepth : 7; // depth when operator was found
- Op fOperator : 6; // operand which generated branch
- mutable Primed fPrimed : 1; // mark when next instruction generates branch
- Done fDone : 1; // mark when branch is complete
- void prime() { fPrimed = kIsPrimed; }
- void resolve(SkDynamicMemoryWStream* , size_t offset);
- };
-
- static const OperatorAttributes gOpAttributes[];
- static const signed char gPrecedence[];
- static const TypeOp gTokens[];
- void addToken(TypeOp );
- void addTokenConst(SkScriptValue2* , AddTokenRegister , SkOperand2::OpType , TypeOp );
- void addTokenInt(int );
- void addTokenScalar(SkScalar );
- void addTokenString(const SkString& );
- void addTokenValue(const SkScriptValue2& , AddTokenRegister );
- int arithmeticOp(char ch, char nextChar, bool lastPush);
- bool convertParams(SkTDArray<SkScriptValue2>* ,
- const SkOperand2::OpType* paramTypes, int paramTypeCount);
- void convertToString(SkOperand2* operand, SkOperand2::OpType type) {
- SkScriptValue2 scriptValue;
- scriptValue.fOperand = *operand;
- scriptValue.fType = type;
- convertTo(SkOperand2::kString, &scriptValue);
- *operand = scriptValue.fOperand;
- }
- bool evaluateDot(const char*& script);
- bool evaluateDotParam(const char*& script, const char* field, size_t fieldLength);
- bool functionParams(const char** scriptPtr, SkTDArray<SkScriptValue2>* params);
- size_t getTokenOffset();
- SkOperand2::OpType getUnboxType(SkOperand2 scriptValue);
- bool handleArrayIndexer(const char** scriptPtr);
- bool handleFunction(const char** scriptPtr);
- bool handleMember(const char* field, size_t len, void* object);
- bool handleMemberFunction(const char* field, size_t len, void* object,
- SkTDArray<SkScriptValue2>* params);
- bool handleProperty();
- bool handleUnbox(SkScriptValue2* scriptValue);
- bool innerScript(const char** scriptPtr, SkScriptValue2* value);
- int logicalOp(char ch, char nextChar);
- void processLogicalOp(Op op);
- bool processOp();
- void resolveBranch(Branch& );
-// void setAnimateMaker(SkAnimateMaker* maker) { fMaker = maker; }
- SkDynamicMemoryWStream fStream;
- SkDynamicMemoryWStream* fActiveStream;
- SkTDStack<BraceStyle> fBraceStack; // curly, square, function paren
- SkTDStack<Branch> fBranchStack; // logical operators, slot to store forward branch
- SkLongArray(SkScriptCallBack*) fCallBackArray;
- SkTDStack<Op> fOpStack;
- SkTDStack<SkScriptValue2> fValueStack;
-// SkAnimateMaker* fMaker;
- SkLongArray(SkOpArray*) fTrackArray;
- SkTDStringArray fTrackString;
- const char* fToken; // one-deep stack
- size_t fTokenLength;
- SkOperand2::OpType fReturnType;
- Error fError;
- SkOperand2::OpType fAccumulatorType; // tracking for code generation
- SkBool fBranchPopAllowed;
- SkBool fConstExpression;
- SkBool fOperandInUse;
-private:
-#ifdef SK_DEBUG
-public:
- void decompile(const unsigned char* , size_t );
- static void UnitTest();
- static void ValidateDecompileTable();
-#endif
-};
-
-#ifdef SK_DEBUG
-
-struct SkScriptNAnswer2 {
- const char* fScript;
- SkOperand2::OpType fType;
- int32_t fIntAnswer;
- SkScalar fScalarAnswer;
- const char* fStringAnswer;
-};
-
-#endif
-
-
-#endif // SkScript2_DEFINED
-
« no previous file with comments | « skia/animator/SkScript.cpp ('k') | skia/animator/SkScriptCallBack.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698