|  |  | 
|  | /* | 
|  | * Copyright 2006 The Android Open Source Project | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifndef SkDisplayAdd_DEFINED | 
|  | #define SkDisplayAdd_DEFINED | 
|  |  | 
|  | #include "SkDrawable.h" | 
|  | #include "SkMemberInfo.h" | 
|  |  | 
|  | class SkAdd : public SkDrawable { | 
|  | DECLARE_MEMBER_INFO(Add); | 
|  | SkAdd(); | 
|  |  | 
|  | enum Mode { | 
|  | kMode_indirect, | 
|  | kMode_immediate | 
|  | }; | 
|  |  | 
|  | virtual SkDisplayable* deepCopy(SkAnimateMaker* ); | 
|  | virtual bool draw(SkAnimateMaker& ); | 
|  | #ifdef SK_DUMP_ENABLED | 
|  | virtual void dump(SkAnimateMaker* ); | 
|  | #endif | 
|  | virtual bool enable(SkAnimateMaker& ); | 
|  | virtual bool hasEnable() const; | 
|  | virtual void initialize(); | 
|  | virtual bool isDrawable() const; | 
|  | protected: | 
|  | //  struct _A { | 
|  | Mode mode; | 
|  | int32_t offset; | 
|  | SkDrawable* use; | 
|  | SkDrawable* where;  // if NULL, offset becomes index | 
|  | //  } A; | 
|  | private: | 
|  | typedef SkDrawable INHERITED; | 
|  | }; | 
|  |  | 
|  | class SkClear : public SkDisplayable { | 
|  | virtual bool enable(SkAnimateMaker& ); | 
|  | }; | 
|  |  | 
|  | class SkMove : public SkAdd { | 
|  | DECLARE_MEMBER_INFO(Move); | 
|  | private: | 
|  | typedef SkAdd INHERITED; | 
|  | }; | 
|  |  | 
|  | class SkRemove : public SkAdd { | 
|  | DECLARE_MEMBER_INFO(Remove); | 
|  | SkRemove(); | 
|  | protected: | 
|  | SkBool fDelete; | 
|  | private: | 
|  | friend class SkAdd; | 
|  | typedef SkAdd INHERITED; | 
|  | }; | 
|  |  | 
|  | class SkReplace : public SkAdd { | 
|  | DECLARE_MEMBER_INFO(Replace); | 
|  | private: | 
|  | typedef SkAdd INHERITED; | 
|  | }; | 
|  |  | 
|  | #endif // SkDisplayAdd_DEFINED |