Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: cc/test/fake_picture_pile_impl.cc

Issue 671653005: SetNeedsRedraw directly when updating a visible tile. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pinchblurmerge-test: testfix Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/test/fake_picture_pile_impl.h" 5 #include "cc/test/fake_picture_pile_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <utility> 9 #include <utility>
10 10
11 #include "cc/resources/picture_pile.h" 11 #include "cc/resources/picture_pile.h"
12 #include "cc/test/impl_side_painting_settings.h" 12 #include "cc/test/impl_side_painting_settings.h"
13 #include "cc/test/thread_blocker.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15
15 namespace cc { 16 namespace cc {
16 17
17 FakePicturePileImpl::FakePicturePileImpl() {} 18 FakePicturePileImpl::FakePicturePileImpl() : raster_thread_blocker_(nullptr) {
19 }
18 20
19 FakePicturePileImpl::FakePicturePileImpl(const PicturePileBase* other) 21 FakePicturePileImpl::FakePicturePileImpl(const PicturePileBase* other,
22 ThreadBlocker* blocker)
20 : PicturePileImpl(other), 23 : PicturePileImpl(other),
24 raster_thread_blocker_(blocker),
21 tile_grid_info_(other->GetTileGridInfoForTesting()) { 25 tile_grid_info_(other->GetTileGridInfoForTesting()) {
22 } 26 }
23 27
24 FakePicturePileImpl::~FakePicturePileImpl() {} 28 FakePicturePileImpl::~FakePicturePileImpl() {}
25 29
26 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateFilledPile( 30 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateFilledPile(
27 const gfx::Size& tile_size, 31 const gfx::Size& tile_size,
28 const gfx::Size& layer_bounds) { 32 const gfx::Size& layer_bounds) {
29 PicturePile pile; 33 PicturePile pile;
30 pile.tiling().SetTilingSize(layer_bounds); 34 pile.tiling().SetTilingSize(layer_bounds);
31 pile.tiling().SetMaxTextureSize(tile_size); 35 pile.tiling().SetMaxTextureSize(tile_size);
32 pile.SetTileGridSize(ImplSidePaintingSettings().default_tile_grid_size); 36 pile.SetTileGridSize(ImplSidePaintingSettings().default_tile_grid_size);
33 pile.SetRecordedViewportForTesting(gfx::Rect(layer_bounds)); 37 pile.SetRecordedViewportForTesting(gfx::Rect(layer_bounds));
34 pile.SetHasAnyRecordingsForTesting(true); 38 pile.SetHasAnyRecordingsForTesting(true);
35 39
36 auto pile_impl = make_scoped_refptr(new FakePicturePileImpl(&pile)); 40 auto pile_impl = make_scoped_refptr(new FakePicturePileImpl(&pile, nullptr));
37 for (int x = 0; x < pile_impl->tiling().num_tiles_x(); ++x) { 41 for (int x = 0; x < pile_impl->tiling().num_tiles_x(); ++x) {
38 for (int y = 0; y < pile_impl->tiling().num_tiles_y(); ++y) 42 for (int y = 0; y < pile_impl->tiling().num_tiles_y(); ++y)
39 pile_impl->AddRecordingAt(x, y); 43 pile_impl->AddRecordingAt(x, y);
40 } 44 }
41 return pile_impl; 45 return pile_impl;
42 } 46 }
43 47
44 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateEmptyPile( 48 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateEmptyPile(
45 const gfx::Size& tile_size, 49 const gfx::Size& tile_size,
46 const gfx::Size& layer_bounds) { 50 const gfx::Size& layer_bounds) {
47 PicturePile pile; 51 PicturePile pile;
48 pile.tiling().SetTilingSize(layer_bounds); 52 pile.tiling().SetTilingSize(layer_bounds);
49 pile.tiling().SetMaxTextureSize(tile_size); 53 pile.tiling().SetMaxTextureSize(tile_size);
50 pile.SetTileGridSize(ImplSidePaintingSettings().default_tile_grid_size); 54 pile.SetTileGridSize(ImplSidePaintingSettings().default_tile_grid_size);
51 pile.SetRecordedViewportForTesting(gfx::Rect()); 55 pile.SetRecordedViewportForTesting(gfx::Rect());
52 pile.SetHasAnyRecordingsForTesting(false); 56 pile.SetHasAnyRecordingsForTesting(false);
53 return make_scoped_refptr(new FakePicturePileImpl(&pile)); 57 return make_scoped_refptr(new FakePicturePileImpl(&pile, nullptr));
54 } 58 }
55 59
56 scoped_refptr<FakePicturePileImpl> 60 scoped_refptr<FakePicturePileImpl>
57 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings( 61 FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings(
58 const gfx::Size& tile_size, 62 const gfx::Size& tile_size,
59 const gfx::Size& layer_bounds) { 63 const gfx::Size& layer_bounds) {
60 PicturePile pile; 64 PicturePile pile;
61 pile.tiling().SetTilingSize(layer_bounds); 65 pile.tiling().SetTilingSize(layer_bounds);
62 pile.tiling().SetMaxTextureSize(tile_size); 66 pile.tiling().SetMaxTextureSize(tile_size);
63 pile.SetTileGridSize(ImplSidePaintingSettings().default_tile_grid_size); 67 pile.SetTileGridSize(ImplSidePaintingSettings().default_tile_grid_size);
64 // This simulates a false positive for this flag. 68 // This simulates a false positive for this flag.
65 pile.SetRecordedViewportForTesting(gfx::Rect()); 69 pile.SetRecordedViewportForTesting(gfx::Rect());
66 pile.SetHasAnyRecordingsForTesting(true); 70 pile.SetHasAnyRecordingsForTesting(true);
67 return make_scoped_refptr(new FakePicturePileImpl(&pile)); 71 return make_scoped_refptr(new FakePicturePileImpl(&pile, nullptr));
68 } 72 }
69 73
70 scoped_refptr<FakePicturePileImpl> 74 scoped_refptr<FakePicturePileImpl>
71 FakePicturePileImpl::CreateInfiniteFilledPile() { 75 FakePicturePileImpl::CreateInfiniteFilledPile() {
72 PicturePile pile; 76 PicturePile pile;
73 gfx::Size size(std::numeric_limits<int>::max(), 77 gfx::Size size(std::numeric_limits<int>::max(),
74 std::numeric_limits<int>::max()); 78 std::numeric_limits<int>::max());
75 pile.tiling().SetTilingSize(size); 79 pile.tiling().SetTilingSize(size);
76 pile.tiling().SetMaxTextureSize(size); 80 pile.tiling().SetMaxTextureSize(size);
77 pile.SetTileGridSize(size); 81 pile.SetTileGridSize(size);
78 pile.SetRecordedViewportForTesting(gfx::Rect(size)); 82 pile.SetRecordedViewportForTesting(gfx::Rect(size));
79 pile.SetHasAnyRecordingsForTesting(true); 83 pile.SetHasAnyRecordingsForTesting(true);
80 84
81 auto pile_impl = make_scoped_refptr(new FakePicturePileImpl(&pile)); 85 auto pile_impl = make_scoped_refptr(new FakePicturePileImpl(&pile, nullptr));
82 pile_impl->AddRecordingAt(0, 0); 86 pile_impl->AddRecordingAt(0, 0);
83 return pile_impl; 87 return pile_impl;
84 } 88 }
85 89
90 scoped_refptr<FakePicturePileImpl> FakePicturePileImpl::CreateFromPile(
91 const PicturePileBase* other,
92 ThreadBlocker* blocker) {
93 return make_scoped_refptr(new FakePicturePileImpl(other, blocker));
94 }
95
96 void FakePicturePileImpl::PlaybackToCanvas(SkCanvas* canvas,
97 const gfx::Rect& canvas_rect,
98 float contents_scale) const {
99 PicturePileImpl::PlaybackToCanvas(canvas, canvas_rect, contents_scale);
100 if (raster_thread_blocker_)
101 raster_thread_blocker_->Wait();
102 }
103
86 void FakePicturePileImpl::AddRecordingAt(int x, int y) { 104 void FakePicturePileImpl::AddRecordingAt(int x, int y) {
87 EXPECT_GE(x, 0); 105 EXPECT_GE(x, 0);
88 EXPECT_GE(y, 0); 106 EXPECT_GE(y, 0);
89 EXPECT_LT(x, tiling_.num_tiles_x()); 107 EXPECT_LT(x, tiling_.num_tiles_x());
90 EXPECT_LT(y, tiling_.num_tiles_y()); 108 EXPECT_LT(y, tiling_.num_tiles_y());
91 109
92 if (HasRecordingAt(x, y)) 110 if (HasRecordingAt(x, y))
93 return; 111 return;
94 gfx::Rect bounds(tiling().TileBounds(x, y)); 112 gfx::Rect bounds(tiling().TileBounds(x, y));
95 bounds.Inset(-buffer_pixels(), -buffer_pixels()); 113 bounds.Inset(-buffer_pixels(), -buffer_pixels());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 Clear(); 175 Clear();
158 tiling_.SetBorderTexels(new_buffer_pixels); 176 tiling_.SetBorderTexels(new_buffer_pixels);
159 } 177 }
160 178
161 void FakePicturePileImpl::Clear() { 179 void FakePicturePileImpl::Clear() {
162 picture_map_.clear(); 180 picture_map_.clear();
163 recorded_viewport_ = gfx::Rect(); 181 recorded_viewport_ = gfx::Rect();
164 } 182 }
165 183
166 } // namespace cc 184 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698