diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/animator/SkDisplayList.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/animator/SkDisplayList.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,70 @@ + +/* + * 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 SkDisplayList_DEFINED +#define SkDisplayList_DEFINED + +#include "SkOperand.h" +#include "SkIntArray.h" +#include "SkBounder.h" +#include "SkRect.h" + +class SkAnimateMaker; +class SkActive; +class SkApply; +class SkDrawable; +class SkGroup; + +class SkDisplayList : public SkBounder { +public: + SkDisplayList(); + virtual ~SkDisplayList(); + void append(SkActive* ); + void clear() { fDrawList.reset(); } + int count() { return fDrawList.count(); } + bool draw(SkAnimateMaker& , SkMSec time); +#ifdef SK_DUMP_ENABLED + void dump(SkAnimateMaker* maker); + void dumpInner(SkAnimateMaker* maker); + static int fIndent; + static int fDumpIndex; +#endif + int findGroup(SkDrawable* match, SkTDDrawableArray** list, + SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList); + SkDrawable* get(int index) { return fDrawList[index]; } + SkMSec getTime() { return fInTime; } + SkTDDrawableArray* getDrawList() { return &fDrawList; } + void hardReset(); + virtual bool onIRect(const SkIRect& r); + void reset(); + void remove(SkActive* ); +#ifdef SK_DEBUG + void validate(); +#else + void validate() {} +#endif + static int SearchForMatch(SkDrawable* match, SkTDDrawableArray** list, + SkGroup** parent, SkGroup** found, SkTDDrawableArray**grandList); + static bool SearchGroupForMatch(SkDrawable* draw, SkDrawable* match, + SkTDDrawableArray** list, SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList, + int &index); +public: + SkIRect fBounds; + SkIRect fInvalBounds; + bool fDrawBounds; + bool fHasUnion; + bool fUnionBounds; +private: + SkTDDrawableArray fDrawList; + SkTDActiveArray fActiveList; + SkMSec fInTime; + friend class SkEvents; +}; + +#endif // SkDisplayList_DEFINED