• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 SkDisplayList_DEFINED
11 #define SkDisplayList_DEFINED
12 
13 #include "SkOperand.h"
14 #include "SkIntArray.h"
15 #include "SkBounder.h"
16 #include "SkRect.h"
17 
18 class SkAnimateMaker;
19 class SkActive;
20 class SkApply;
21 class SkDrawable;
22 class SkGroup;
23 
24 class SkDisplayList : public SkBounder {
25 public:
26     SkDisplayList();
27     virtual ~SkDisplayList();
28     void append(SkActive* );
clear()29     void clear() { fDrawList.reset(); }
count()30     int count() { return fDrawList.count(); }
31     bool draw(SkAnimateMaker& , SkMSec time);
32 #ifdef SK_DUMP_ENABLED
33     void dump(SkAnimateMaker* maker);
34     void dumpInner(SkAnimateMaker* maker);
35     static int fIndent;
36     static int fDumpIndex;
37 #endif
38     int findGroup(SkDrawable* match, SkTDDrawableArray** list,
39         SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList);
get(int index)40     SkDrawable* get(int index) { return fDrawList[index]; }
getTime()41     SkMSec getTime() { return fInTime; }
getDrawList()42     SkTDDrawableArray* getDrawList() { return &fDrawList; }
43     void hardReset();
44     virtual bool onIRect(const SkIRect& r);
45     void reset();
46     void remove(SkActive* );
47 #ifdef SK_DEBUG
48     void validate();
49 #else
validate()50     void validate() {}
51 #endif
52     static int SearchForMatch(SkDrawable* match, SkTDDrawableArray** list,
53         SkGroup** parent, SkGroup** found, SkTDDrawableArray**grandList);
54     static bool SearchGroupForMatch(SkDrawable* draw, SkDrawable* match,
55         SkTDDrawableArray** list, SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList,
56         int &index);
57 public:
58     SkIRect fBounds;
59     SkIRect fInvalBounds;
60     bool fDrawBounds;
61     bool fHasUnion;
62     bool fUnionBounds;
63 private:
64     SkTDDrawableArray fDrawList;
65     SkTDActiveArray fActiveList;
66     SkMSec fInTime;
67     friend class SkEvents;
68 };
69 
70 #endif // SkDisplayList_DEFINED
71 
72