Home | History | Annotate | Download | only in animator
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #ifndef SkDisplayAdd_DEFINED
     11 #define SkDisplayAdd_DEFINED
     12 
     13 #include "SkDrawable.h"
     14 #include "SkMemberInfo.h"
     15 
     16 class SkAdd : public SkDrawable {
     17     DECLARE_MEMBER_INFO(Add);
     18     SkAdd();
     19 
     20     enum Mode {
     21         kMode_indirect,
     22         kMode_immediate
     23     };
     24 
     25     virtual SkDisplayable* deepCopy(SkAnimateMaker* );
     26     virtual bool draw(SkAnimateMaker& );
     27 #ifdef SK_DUMP_ENABLED
     28     virtual void dump(SkAnimateMaker* );
     29 #endif
     30     virtual bool enable(SkAnimateMaker& );
     31     virtual bool hasEnable() const;
     32     virtual void initialize();
     33     virtual bool isDrawable() const;
     34 protected:
     35 //  struct _A {
     36         Mode mode;
     37         int32_t offset;
     38         SkDrawable* use;
     39         SkDrawable* where;  // if NULL, offset becomes index
     40 //  } A;
     41 private:
     42     typedef SkDrawable INHERITED;
     43 };
     44 
     45 class SkClear : public SkDisplayable {
     46     virtual bool enable(SkAnimateMaker& );
     47 };
     48 
     49 class SkMove : public SkAdd {
     50     DECLARE_MEMBER_INFO(Move);
     51 private:
     52     typedef SkAdd INHERITED;
     53 };
     54 
     55 class SkRemove : public SkAdd {
     56     DECLARE_MEMBER_INFO(Remove);
     57     SkRemove();
     58 protected:
     59     SkBool fDelete;
     60 private:
     61     friend class SkAdd;
     62     typedef SkAdd INHERITED;
     63 };
     64 
     65 class SkReplace : public SkAdd {
     66     DECLARE_MEMBER_INFO(Replace);
     67 private:
     68     typedef SkAdd INHERITED;
     69 };
     70 
     71 #endif // SkDisplayAdd_DEFINED
     72