Index: cc/test/fake_picture_pile_impl.cc |
diff --git a/cc/test/fake_picture_pile_impl.cc b/cc/test/fake_picture_pile_impl.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..70d0a8d3d90a02e2447cc5f4ac99fc32a3d9d387 |
--- /dev/null |
+++ b/cc/test/fake_picture_pile_impl.cc |
@@ -0,0 +1,76 @@ |
+// 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. |
+ |
+#include "cc/test/fake_picture_pile_impl.h" |
+ |
+#include <utility> |
+ |
+#include "cc/test/impl_side_painting_settings.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace cc { |
+ |
+FakePicturePileImpl::FakePicturePileImpl() |
+ : PicturePileImpl(false) {} |
+ |
+FakePicturePileImpl::~FakePicturePileImpl() {} |
+ |
+scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateFilledPile( |
+ gfx::Size tile_size, |
+ gfx::Size layer_bounds) { |
+ scoped_refptr<FakePicturePileImpl> pile(new FakePicturePileImpl()); |
+ pile->tiling().SetTotalSize(layer_bounds); |
+ pile->tiling().SetMaxTextureSize(tile_size); |
+ pile->SetTileGridSize(ImplSidePaintingSettings().default_tile_size); |
+ for (int x = 0; x < pile->tiling().num_tiles_x(); ++x) { |
+ for (int y = 0; y < pile->tiling().num_tiles_y(); ++y) |
+ pile->AddRecordingAt(x, y); |
+ } |
+ pile->UpdateRecordedRegion(); |
+ return pile; |
+} |
+ |
+scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateEmptyPile( |
+ gfx::Size tile_size, |
+ gfx::Size layer_bounds) { |
+ scoped_refptr<FakePicturePileImpl> pile(new FakePicturePileImpl()); |
+ pile->tiling().SetTotalSize(layer_bounds); |
+ pile->tiling().SetMaxTextureSize(tile_size); |
+ pile->SetTileGridSize(ImplSidePaintingSettings().default_tile_size); |
+ pile->UpdateRecordedRegion(); |
+ return pile; |
+} |
+ |
+void FakePicturePileImpl::AddRecordingAt(int x, int y) { |
+ EXPECT_GE(x, 0); |
+ EXPECT_GE(y, 0); |
+ EXPECT_LT(x, tiling_.num_tiles_x()); |
+ EXPECT_LT(y, tiling_.num_tiles_y()); |
+ |
+ if (HasRecordingAt(x, y)) |
+ return; |
+ gfx::Rect bounds(tiling().TileBounds(x, y)); |
+ scoped_refptr<Picture> picture(Picture::Create(bounds)); |
+ picture->Record(&client_, NULL, tile_grid_info_); |
+ picture_list_map_[std::pair<int, int>(x, y)].push_back(picture); |
+ EXPECT_TRUE(HasRecordingAt(x, y)); |
+ |
+ UpdateRecordedRegion(); |
+} |
+ |
+void FakePicturePileImpl::RemoveRecordingAt(int x, int y) { |
+ EXPECT_GE(x, 0); |
+ EXPECT_GE(y, 0); |
+ EXPECT_LT(x, tiling_.num_tiles_x()); |
+ EXPECT_LT(y, tiling_.num_tiles_y()); |
+ |
+ if (!HasRecordingAt(x, y)) |
+ return; |
+ picture_list_map_.erase(std::pair<int, int>(x, y)); |
+ EXPECT_FALSE(HasRecordingAt(x, y)); |
+ |
+ UpdateRecordedRegion(); |
+} |
+ |
+} // namespace cc |