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

Side by Side Diff: cc/trees/occlusion_tracker_unittest.cc

Issue 373113003: Keeping track of descendants that draw content instead of recalcualting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months 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
« no previous file with comments | « cc/trees/layer_tree_impl_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/trees/occlusion_tracker.h" 5 #include "cc/trees/occlusion_tracker.h"
6 6
7 #include "cc/animation/layer_animation_controller.h" 7 #include "cc/animation/layer_animation_controller.h"
8 #include "cc/base/math_util.h" 8 #include "cc/base/math_util.h"
9 #include "cc/layers/layer.h" 9 #include "cc/layers/layer.h"
10 #include "cc/layers/layer_impl.h" 10 #include "cc/layers/layer_impl.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 return ref; 126 return ref;
127 } 127 }
128 128
129 static LayerPtrType PassLayerPtr(LayerPtrType* layer) { 129 static LayerPtrType PassLayerPtr(LayerPtrType* layer) {
130 LayerPtrType ref(*layer); 130 LayerPtrType ref(*layer);
131 *layer = NULL; 131 *layer = NULL;
132 return ref; 132 return ref;
133 } 133 }
134 134
135 static void DestroyLayer(LayerPtrType* layer) { *layer = NULL; } 135 static void DestroyLayer(LayerPtrType* layer) { *layer = NULL; }
136
137 static void RecursiveUpdateNumChildren(LayerType* layerType) {}
136 }; 138 };
137 139
138 struct OcclusionTrackerTestImplThreadTypes { 140 struct OcclusionTrackerTestImplThreadTypes {
139 typedef LayerImpl LayerType; 141 typedef LayerImpl LayerType;
140 typedef LayerTreeImpl HostType; 142 typedef LayerTreeImpl HostType;
141 typedef RenderSurfaceImpl RenderSurfaceType; 143 typedef RenderSurfaceImpl RenderSurfaceType;
142 typedef TestContentLayerImpl ContentLayerType; 144 typedef TestContentLayerImpl ContentLayerType;
143 typedef scoped_ptr<LayerImpl> LayerPtrType; 145 typedef scoped_ptr<LayerImpl> LayerPtrType;
144 typedef scoped_ptr<ContentLayerType> ContentLayerPtrType; 146 typedef scoped_ptr<ContentLayerType> ContentLayerPtrType;
145 typedef LayerIterator<LayerImpl> TestLayerIterator; 147 typedef LayerIterator<LayerImpl> TestLayerIterator;
146 typedef OcclusionTracker<LayerImpl> OcclusionTrackerType; 148 typedef OcclusionTracker<LayerImpl> OcclusionTrackerType;
147 149
148 static LayerPtrType CreateLayer(HostType* host) { 150 static LayerPtrType CreateLayer(HostType* host) {
149 return LayerImpl::Create(host, next_layer_impl_id++); 151 return LayerImpl::Create(host, next_layer_impl_id++);
150 } 152 }
151 static ContentLayerPtrType CreateContentLayer(HostType* host) { 153 static ContentLayerPtrType CreateContentLayer(HostType* host) {
152 return make_scoped_ptr(new ContentLayerType(host, next_layer_impl_id++)); 154 return make_scoped_ptr(new ContentLayerType(host, next_layer_impl_id++));
153 } 155 }
154 static int next_layer_impl_id; 156 static int next_layer_impl_id;
155 157
156 static LayerPtrType PassLayerPtr(LayerPtrType* layer) { 158 static LayerPtrType PassLayerPtr(LayerPtrType* layer) {
157 return layer->Pass(); 159 return layer->Pass();
158 } 160 }
159 161
160 static LayerPtrType PassLayerPtr(ContentLayerPtrType* layer) { 162 static LayerPtrType PassLayerPtr(ContentLayerPtrType* layer) {
161 return layer->PassAs<LayerType>(); 163 return layer->PassAs<LayerType>();
162 } 164 }
163 165
164 static void DestroyLayer(LayerPtrType* layer) { layer->reset(); } 166 static void DestroyLayer(LayerPtrType* layer) { layer->reset(); }
167
168 static void RecursiveUpdateNumChildren(LayerType* layer) {
169 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(layer);
170 }
165 }; 171 };
166 172
167 int OcclusionTrackerTestImplThreadTypes::next_layer_impl_id = 1; 173 int OcclusionTrackerTestImplThreadTypes::next_layer_impl_id = 1;
168 174
169 template <typename Types> class OcclusionTrackerTest : public testing::Test { 175 template <typename Types> class OcclusionTrackerTest : public testing::Test {
170 protected: 176 protected:
171 explicit OcclusionTrackerTest(bool opaque_layers) 177 explicit OcclusionTrackerTest(bool opaque_layers)
172 : opaque_layers_(opaque_layers), host_(FakeLayerTreeHost::Create()) {} 178 : opaque_layers_(opaque_layers), host_(FakeLayerTreeHost::Create()) {}
173 179
174 virtual void RunMyTest() = 0; 180 virtual void RunMyTest() = 0;
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 CopyOutputRequest::CreateBitmapRequest(base::Bind( 303 CopyOutputRequest::CreateBitmapRequest(base::Bind(
298 &OcclusionTrackerTest<Types>::CopyOutputCallback, 304 &OcclusionTrackerTest<Types>::CopyOutputCallback,
299 base::Unretained(this)))); 305 base::Unretained(this))));
300 layer->PassCopyRequests(&requests); 306 layer->PassCopyRequests(&requests);
301 } 307 }
302 308
303 void CalcDrawEtc(TestContentLayerImpl* root) { 309 void CalcDrawEtc(TestContentLayerImpl* root) {
304 DCHECK(root == root_.get()); 310 DCHECK(root == root_.get());
305 DCHECK(!root->render_surface()); 311 DCHECK(!root->render_surface());
306 312
313 Types::RecursiveUpdateNumChildren(root);
307 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( 314 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs(
308 root, root->bounds(), &render_surface_layer_list_impl_); 315 root, root->bounds(), &render_surface_layer_list_impl_);
309 inputs.can_adjust_raster_scales = true; 316 inputs.can_adjust_raster_scales = true;
310 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 317 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
311 318
312 layer_iterator_ = layer_iterator_begin_ = 319 layer_iterator_ = layer_iterator_begin_ =
313 Types::TestLayerIterator::Begin(&render_surface_layer_list_impl_); 320 Types::TestLayerIterator::Begin(&render_surface_layer_list_impl_);
314 } 321 }
315 322
316 void CalcDrawEtc(TestContentLayer* root) { 323 void CalcDrawEtc(TestContentLayer* root) {
(...skipping 3232 matching lines...) Expand 10 before | Expand all | Expand 10 after
3549 occlusion.occlusion_from_outside_target().ToString()); 3556 occlusion.occlusion_from_outside_target().ToString());
3550 EXPECT_EQ(gfx::Rect().ToString(), 3557 EXPECT_EQ(gfx::Rect().ToString(),
3551 occlusion.occlusion_from_inside_target().ToString()); 3558 occlusion.occlusion_from_inside_target().ToString());
3552 } 3559 }
3553 }; 3560 };
3554 3561
3555 ALL_OCCLUSIONTRACKER_TEST(OcclusionTrackerTestHiddenCopyRequestDoesNotOcclude) 3562 ALL_OCCLUSIONTRACKER_TEST(OcclusionTrackerTestHiddenCopyRequestDoesNotOcclude)
3556 3563
3557 } // namespace 3564 } // namespace
3558 } // namespace cc 3565 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_impl_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698