// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_TEST_FAKE_PICTURE_PILE_IMPL_H_ #define CC_TEST_FAKE_PICTURE_PILE_IMPL_H_ #include "base/memory/ref_counted.h" #include "cc/playback/picture_pile_impl.h" #include "cc/test/fake_picture_pile.h" namespace base { class WaitableEvent; } namespace cc { class FakePicturePileImpl : public PicturePileImpl { public: static scoped_refptr CreatePile( const gfx::Size& tile_size, const gfx::Size& layer_bounds, bool is_filled); static scoped_refptr CreateFilledPileWithDefaultTileSize( const gfx::Size& layer_bounds) { return CreateFilledPile(gfx::Size(512, 512), layer_bounds); } static scoped_refptr CreateEmptyPileWithDefaultTileSize( const gfx::Size& layer_bounds) { return CreateEmptyPile(gfx::Size(512, 512), layer_bounds); } static scoped_refptr CreateFilledPile( const gfx::Size& tile_size, const gfx::Size& layer_bounds); static scoped_refptr CreateEmptyPile( const gfx::Size& tile_size, const gfx::Size& layer_bounds); static scoped_refptr CreateEmptyPileThatThinksItHasRecordings(const gfx::Size& tile_size, const gfx::Size& layer_bounds, bool is_solid_color); static scoped_refptr CreateInfiniteFilledPile(); static scoped_refptr CreateFromPile( const PicturePile* other, base::WaitableEvent* playback_allowed_event); // Hi-jack the PlaybackToCanvas method to delay its completion. void PlaybackToCanvas(SkCanvas* canvas, const gfx::Rect& canvas_bitmap_rect, const gfx::Rect& canvas_playback_rect, float contents_scale) const override; const TilingData& tiling() { return tiling_; } bool HasRecordingAt(int x, int y) const; int num_tiles_x() const { return tiling_.num_tiles_x(); } int num_tiles_y() const { return tiling_.num_tiles_y(); } protected: FakePicturePileImpl(); FakePicturePileImpl(const PicturePile* other, base::WaitableEvent* playback_allowed_event); ~FakePicturePileImpl() override; base::WaitableEvent* playback_allowed_event_; gfx::Size tile_grid_size_; }; } // namespace cc #endif // CC_TEST_FAKE_PICTURE_PILE_IMPL_H_