1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/test/fake_picture_pile_impl.h"
10 #include "cc/test/impl_side_painting_settings.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 FakePicturePileImpl::FakePicturePileImpl() {}
17 FakePicturePileImpl::~FakePicturePileImpl() {}
19 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateFilledPile(
21 gfx::Size layer_bounds) {
22 scoped_refptr<FakePicturePileImpl> pile(new FakePicturePileImpl());
23 pile->tiling().SetTotalSize(layer_bounds);
24 pile->tiling().SetMaxTextureSize(tile_size);
25 pile->SetTileGridSize(ImplSidePaintingSettings().default_tile_size);
26 for (int x = 0; x < pile->tiling().num_tiles_x(); ++x) {
27 for (int y = 0; y < pile->tiling().num_tiles_y(); ++y)
28 pile->AddRecordingAt(x, y);
30 pile->UpdateRecordedRegion();
34 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateEmptyPile(
36 gfx::Size layer_bounds) {
37 scoped_refptr<FakePicturePileImpl> pile(new FakePicturePileImpl());
38 pile->tiling().SetTotalSize(layer_bounds);
39 pile->tiling().SetMaxTextureSize(tile_size);
40 pile->SetTileGridSize(ImplSidePaintingSettings().default_tile_size);
41 pile->UpdateRecordedRegion();
45 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreatePile() {
46 scoped_refptr<FakePicturePileImpl> pile(new FakePicturePileImpl());
47 gfx::Size size(std::numeric_limits<int>::max(),
48 std::numeric_limits<int>::max());
50 pile->recorded_region_ = Region(gfx::Rect(size));
54 void FakePicturePileImpl::AddRecordingAt(int x, int y) {
57 EXPECT_LT(x, tiling_.num_tiles_x());
58 EXPECT_LT(y, tiling_.num_tiles_y());
60 if (HasRecordingAt(x, y))
62 gfx::Rect bounds(tiling().TileBounds(x, y));
63 bounds.Inset(-buffer_pixels(), -buffer_pixels());
65 scoped_refptr<Picture> picture(Picture::Create(bounds));
66 picture->Record(&client_, tile_grid_info_);
67 picture->GatherPixelRefs(tile_grid_info_);
68 picture_map_[std::pair<int, int>(x, y)].picture = picture;
69 EXPECT_TRUE(HasRecordingAt(x, y));
71 UpdateRecordedRegion();
74 void FakePicturePileImpl::RemoveRecordingAt(int x, int y) {
77 EXPECT_LT(x, tiling_.num_tiles_x());
78 EXPECT_LT(y, tiling_.num_tiles_y());
80 if (!HasRecordingAt(x, y))
82 picture_map_.erase(std::pair<int, int>(x, y));
83 EXPECT_FALSE(HasRecordingAt(x, y));
85 UpdateRecordedRegion();
88 void FakePicturePileImpl::RerecordPile() {
89 for (int y = 0; y < num_tiles_y(); ++y) {
90 for (int x = 0; x < num_tiles_x(); ++x) {
91 RemoveRecordingAt(x, y);