11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkDisplayList_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkDisplayList_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkOperand.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkIntArray.h" 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkBounder.h" 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkRect.h" 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkAnimateMaker; 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkActive; 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkApply; 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDrawable; 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkGroup; 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkDisplayList : public SkBounder { 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDisplayList(); 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual ~SkDisplayList(); 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void append(SkActive* ); 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void clear() { fDrawList.reset(); } 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int count() { return fDrawList.count(); } 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project bool draw(SkAnimateMaker& , SkMSec time); 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DUMP_ENABLED 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void dump(SkAnimateMaker* maker); 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void dumpInner(SkAnimateMaker* maker); 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static int fIndent; 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static int fDumpIndex; 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int findGroup(SkDrawable* match, SkTDDrawableArray** list, 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList); 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkDrawable* get(int index) { return fDrawList[index]; } 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkMSec getTime() { return fInTime; } 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTDDrawableArray* getDrawList() { return &fDrawList; } 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void hardReset(); 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual bool onIRect(const SkIRect& r); 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void reset(); 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void remove(SkActive* ); 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DEBUG 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void validate(); 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#else 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void validate() {} 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static int SearchForMatch(SkDrawable* match, SkTDDrawableArray** list, 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkGroup** parent, SkGroup** found, SkTDDrawableArray**grandList); 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static bool SearchGroupForMatch(SkDrawable* draw, SkDrawable* match, 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTDDrawableArray** list, SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList, 560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int &index); 570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkIRect fBounds; 590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkIRect fInvalBounds; 600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project bool fDrawBounds; 610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project bool fHasUnion; 620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project bool fUnionBounds; 630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTDDrawableArray fDrawList; 650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkTDActiveArray fActiveList; 660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkMSec fInTime; 670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project friend class SkEvents; 680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SkDisplayList_DEFINED 710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 72