11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkDisplayTypes_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkDisplayTypes_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDisplayable.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkMemberInfo.h" 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkTypedArray.h" 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkOpArray; // compiled script experiment 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayDepend : public SkDisplayable { 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual bool canContainDependents() const; 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void addDependent(SkDisplayable* displayable) { 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project if (fDependents.find(displayable) < 0) 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *fDependents.append() = displayable; 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project } 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void dirty(); 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTDDisplayableArray fDependents; 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project typedef SkDisplayable INHERITED; 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayBoolean : public SkDisplayDepend { 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DECLARE_DISPLAY_MEMBER_INFO(Boolean); 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayBoolean(); 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DUMP_ENABLED 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void dump(SkAnimateMaker* ); 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkBool value; 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript; 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Box; 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Unbox; 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project typedef SkDisplayDepend INHERITED; 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayInt : public SkDisplayDepend { 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DECLARE_DISPLAY_MEMBER_INFO(Int); 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayInt(); 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DUMP_ENABLED 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void dump(SkAnimateMaker* ); 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int32_t value; 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript; 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Box; 560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Unbox; 570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project typedef SkDisplayDepend INHERITED; 580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayFloat : public SkDisplayDepend { 610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DECLARE_DISPLAY_MEMBER_INFO(Float); 620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayFloat(); 630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DUMP_ENABLED 640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void dump(SkAnimateMaker* ); 650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkScalar value; 680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript; 690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Box; 700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Unbox; 710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project typedef SkDisplayDepend INHERITED; 720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayString : public SkDisplayDepend { 750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DECLARE_DISPLAY_MEMBER_INFO(String); 760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayString(); 770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayString(SkString& ); 780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void executeFunction(SkDisplayable* , int index, 790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type, 800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkScriptValue* ); 810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual const SkFunctionParamType* getFunctionsParameters(); 820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual bool getProperty(int index, SkScriptValue* ) const; 830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkString value; 840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static const SkFunctionParamType fFunctionParameters[]; 860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayArray : public SkDisplayDepend { 890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project DECLARE_DISPLAY_MEMBER_INFO(Array); 900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayArray(); 910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayArray(SkTypedArray& ); 920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayArray(SkOpArray& ); // compiled script experiment 930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual ~SkDisplayArray(); 940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual bool getProperty(int index, SkScriptValue* ) const; 950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTypedArray values; 970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimator; 980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript; 990910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript2; 1000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkAnimatorScript_Unbox; 1010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkDisplayable; 1020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend struct SkMemberInfo; 1030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkScriptEngine; 1040910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 1050910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1060910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SkDisplayTypes_DEFINED 1070910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 108