blob: d16492b063366b7034d591663e27b374d531fe32 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkDisplayAdd_DEFINED
11#define SkDisplayAdd_DEFINED
12
13#include "SkDrawable.h"
14#include "SkMemberInfo.h"
15
16class SkAdd : public SkDrawable {
17 DECLARE_MEMBER_INFO(Add);
18 SkAdd();
rmistry@google.comd6176b02012-08-23 18:14:13 +000019
reed@android.com8a1c16f2008-12-17 15:59:43 +000020 enum Mode {
21 kMode_indirect,
22 kMode_immediate
23 };
rmistry@google.comd6176b02012-08-23 18:14:13 +000024
reed@android.com8a1c16f2008-12-17 15:59:43 +000025 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;
34protected:
35// struct _A {
36 Mode mode;
37 int32_t offset;
38 SkDrawable* use;
39 SkDrawable* where; // if NULL, offset becomes index
40// } A;
41private:
42 typedef SkDrawable INHERITED;
43};
44
45class SkClear : public SkDisplayable {
46 virtual bool enable(SkAnimateMaker& );
47};
48
49class SkMove : public SkAdd {
50 DECLARE_MEMBER_INFO(Move);
51private:
52 typedef SkAdd INHERITED;
53};
54
55class SkRemove : public SkAdd {
56 DECLARE_MEMBER_INFO(Remove);
57 SkRemove();
58protected:
59 SkBool fDelete;
60private:
61 friend class SkAdd;
62 typedef SkAdd INHERITED;
63};
64
65class SkReplace : public SkAdd {
66 DECLARE_MEMBER_INFO(Replace);
67private:
68 typedef SkAdd INHERITED;
69};
70
71#endif // SkDisplayAdd_DEFINED