Revert 264226 "Reduce dependency of TiclInvalidationService on P..."
[chromium-blink-merge.git] / cc / test / fake_picture_layer_impl.cc
blob88dde4dbdc638e4b838773c4567e5eef0cbd90a8
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_layer_impl.h"
7 #include <vector>
8 #include "cc/resources/tile.h"
9 #include "cc/trees/layer_tree_impl.h"
11 namespace cc {
13 FakePictureLayerImpl::FakePictureLayerImpl(
14 LayerTreeImpl* tree_impl,
15 int id,
16 scoped_refptr<PicturePileImpl> pile)
17 : PictureLayerImpl(tree_impl, id),
18 append_quads_count_(0) {
19 pile_ = pile;
20 CHECK(pile->tiling_rect().origin() == gfx::Point());
21 SetBounds(pile_->tiling_rect().size());
24 FakePictureLayerImpl::FakePictureLayerImpl(LayerTreeImpl* tree_impl,
25 int id,
26 scoped_refptr<PicturePileImpl> pile,
27 const gfx::Size& layer_bounds)
28 : PictureLayerImpl(tree_impl, id), append_quads_count_(0) {
29 pile_ = pile;
30 SetBounds(layer_bounds);
33 FakePictureLayerImpl::FakePictureLayerImpl(LayerTreeImpl* tree_impl, int id)
34 : PictureLayerImpl(tree_impl, id), append_quads_count_(0) {}
36 scoped_ptr<LayerImpl> FakePictureLayerImpl::CreateLayerImpl(
37 LayerTreeImpl* tree_impl) {
38 return make_scoped_ptr(
39 new FakePictureLayerImpl(tree_impl, id())).PassAs<LayerImpl>();
42 void FakePictureLayerImpl::AppendQuads(QuadSink* quad_sink,
43 AppendQuadsData* append_quads_data) {
44 PictureLayerImpl::AppendQuads(quad_sink, append_quads_data);
45 ++append_quads_count_;
48 gfx::Size FakePictureLayerImpl::CalculateTileSize(
49 const gfx::Size& content_bounds) const {
50 if (fixed_tile_size_.IsEmpty()) {
51 return PictureLayerImpl::CalculateTileSize(content_bounds);
54 return fixed_tile_size_;
57 PictureLayerTiling* FakePictureLayerImpl::HighResTiling() const {
58 PictureLayerTiling* result = NULL;
59 for (size_t i = 0; i < tilings_->num_tilings(); ++i) {
60 PictureLayerTiling* tiling = tilings_->tiling_at(i);
61 if (tiling->resolution() == HIGH_RESOLUTION) {
62 // There should be only one high res tiling.
63 CHECK(!result);
64 result = tiling;
67 return result;
70 PictureLayerTiling* FakePictureLayerImpl::LowResTiling() const {
71 PictureLayerTiling* result = NULL;
72 for (size_t i = 0; i < tilings_->num_tilings(); ++i) {
73 PictureLayerTiling* tiling = tilings_->tiling_at(i);
74 if (tiling->resolution() == LOW_RESOLUTION) {
75 // There should be only one low res tiling.
76 CHECK(!result);
77 result = tiling;
80 return result;
83 void FakePictureLayerImpl::SetAllTilesVisible() {
84 WhichTree tree =
85 layer_tree_impl()->IsActiveTree() ? ACTIVE_TREE : PENDING_TREE;
87 for (size_t tiling_idx = 0; tiling_idx < tilings_->num_tilings();
88 ++tiling_idx) {
89 PictureLayerTiling* tiling = tilings_->tiling_at(tiling_idx);
90 std::vector<Tile*> tiles = tiling->AllTilesForTesting();
91 for (size_t tile_idx = 0; tile_idx < tiles.size(); ++tile_idx) {
92 Tile* tile = tiles[tile_idx];
93 TilePriority priority;
94 priority.resolution = HIGH_RESOLUTION;
95 priority.priority_bin = TilePriority::NOW;
96 priority.distance_to_visible = 0.f;
97 tile->SetPriority(tree, priority);
102 void FakePictureLayerImpl::ResetAllTilesPriorities() {
103 for (size_t tiling_idx = 0; tiling_idx < tilings_->num_tilings();
104 ++tiling_idx) {
105 PictureLayerTiling* tiling = tilings_->tiling_at(tiling_idx);
106 std::vector<Tile*> tiles = tiling->AllTilesForTesting();
107 for (size_t tile_idx = 0; tile_idx < tiles.size(); ++tile_idx) {
108 Tile* tile = tiles[tile_idx];
109 tile->SetPriority(ACTIVE_TREE, TilePriority());
110 tile->SetPriority(PENDING_TREE, TilePriority());
115 void FakePictureLayerImpl::SetAllTilesReady() {
116 for (size_t tiling_idx = 0; tiling_idx < tilings_->num_tilings();
117 ++tiling_idx) {
118 PictureLayerTiling* tiling = tilings_->tiling_at(tiling_idx);
119 SetAllTilesReadyInTiling(tiling);
123 void FakePictureLayerImpl::SetAllTilesReadyInTiling(
124 PictureLayerTiling* tiling) {
125 std::vector<Tile*> tiles = tiling->AllTilesForTesting();
126 for (size_t tile_idx = 0; tile_idx < tiles.size(); ++tile_idx) {
127 Tile* tile = tiles[tile_idx];
128 ManagedTileState& state = tile->managed_state();
129 for (size_t mode_idx = 0; mode_idx < NUM_RASTER_MODES; ++mode_idx)
130 state.tile_versions[mode_idx].SetSolidColorForTesting(true);
131 DCHECK(tile->IsReadyToDraw());
135 void FakePictureLayerImpl::CreateDefaultTilingsAndTiles() {
136 layer_tree_impl()->UpdateDrawProperties();
138 if (CanHaveTilings()) {
139 DCHECK_EQ(tilings()->num_tilings(), 2u);
140 DCHECK_EQ(tilings()->tiling_at(0)->resolution(), HIGH_RESOLUTION);
141 DCHECK_EQ(tilings()->tiling_at(1)->resolution(), LOW_RESOLUTION);
142 HighResTiling()->CreateAllTilesForTesting();
143 LowResTiling()->CreateAllTilesForTesting();
144 } else {
145 DCHECK_EQ(tilings()->num_tilings(), 0u);
149 } // namespace cc