summaryrefslogtreecommitdiffstats
path: root/cc/resources/picture_pile_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/resources/picture_pile_impl.h')
-rw-r--r--cc/resources/picture_pile_impl.h30
1 files changed, 25 insertions, 5 deletions
diff --git a/cc/resources/picture_pile_impl.h b/cc/resources/picture_pile_impl.h
index 352772d..d151bf3 100644
--- a/cc/resources/picture_pile_impl.h
+++ b/cc/resources/picture_pile_impl.h
@@ -37,11 +37,6 @@ class CC_EXPORT PicturePileImpl : public PicturePileBase {
gfx::Rect canvas_rect,
float contents_scale);
- void GatherPixelRefs(
- gfx::Rect content_rect,
- float contents_scale,
- std::list<skia::LazyPixelRef*>& pixel_refs);
-
skia::RefPtr<SkPicture> GetFlattenedPicture();
struct CC_EXPORT Analysis {
@@ -61,8 +56,33 @@ class CC_EXPORT PicturePileImpl : public PicturePileBase {
float contents_scale,
Analysis* analysis);
+ class CC_EXPORT PixelRefIterator {
+ public:
+ PixelRefIterator(gfx::Rect content_rect,
+ float contents_scale,
+ const PicturePileImpl* picture_pile);
+ ~PixelRefIterator();
+
+ skia::LazyPixelRef* operator->() const { return *pixel_ref_iterator_; }
+ skia::LazyPixelRef* operator*() const { return *pixel_ref_iterator_; }
+ PixelRefIterator& operator++();
+ operator bool() const { return pixel_ref_iterator_; }
+
+ private:
+ bool AdvanceToTileWithPictures();
+ void AdvanceToPictureWithPixelRefs();
+
+ const PicturePileImpl* picture_pile_;
+ gfx::Rect layer_rect_;
+ TilingData::Iterator tile_iterator_;
+ Picture::PixelRefIterator pixel_ref_iterator_;
+ const PictureList* picture_list_;
+ PictureList::const_iterator picture_list_iterator_;
+ };
+
protected:
friend class PicturePile;
+ friend class PixelRefIterator;
explicit PicturePileImpl(bool enable_lcd_text);
PicturePileImpl(const PicturePileBase* other, bool enable_lcd_text);