Chromium Code Reviews| Index: cc/trees/occlusion_tracker_unittest.cc |
| diff --git a/cc/trees/occlusion_tracker_unittest.cc b/cc/trees/occlusion_tracker_unittest.cc |
| index aaf655f2a7f409ff277bd60dfe83f7fe03243572..f9a3ea663f20d3ead768fc7c17cc8ecae5a07a1d 100644 |
| --- a/cc/trees/occlusion_tracker_unittest.cc |
| +++ b/cc/trees/occlusion_tracker_unittest.cc |
| @@ -131,6 +131,9 @@ struct OcclusionTrackerTestMainThreadTypes { |
| *layer = NULL; |
| return ref; |
| } |
| + static void SetForceRenderSurface(LayerType* layer, bool force) { |
| + layer->SetForceRenderSurface(force); |
| + } |
| static void DestroyLayer(LayerPtrType* layer) { *layer = NULL; } |
| @@ -163,6 +166,9 @@ struct OcclusionTrackerTestImplThreadTypes { |
| return layer->PassAs<LayerType>(); |
| } |
| + static void SetForceRenderSurface(LayerType* layer, bool force) { |
| + layer->SetHasRenderSurface(force); |
| + } |
| static void DestroyLayer(LayerPtrType* layer) { layer->reset(); } |
| static void RecursiveUpdateNumChildren(LayerType* layer) { |
| @@ -194,6 +200,7 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test { |
| DCHECK(!root_.get()); |
| root_ = Types::PassLayerPtr(&layer); |
| + CreateRenderSurfaceOnImplThread(layer_ptr); |
|
danakj
2014/09/03 19:30:35
you could just Types::SetForceRenderSurface(layer_
awoloszyn
2014/09/09 15:31:37
That would have the same effect, although on MainT
|
| SetRootLayerOnMainThread(layer_ptr); |
| return layer_ptr; |
| @@ -216,7 +223,7 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test { |
| const gfx::Size& bounds) { |
| typename Types::LayerType* layer = |
| CreateLayer(parent, transform, position, bounds); |
| - layer->SetForceRenderSurface(true); |
| + Types::SetForceRenderSurface(layer, true); |
| return layer; |
| } |
| @@ -277,7 +284,7 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test { |
| bool opaque) { |
| typename Types::ContentLayerType* layer = |
| CreateDrawingLayer(parent, transform, position, bounds, opaque); |
| - layer->SetForceRenderSurface(true); |
| + Types::SetForceRenderSurface(layer, true); |
| return layer; |
| } |
| @@ -305,12 +312,12 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test { |
| CopyOutputRequest::CreateBitmapRequest(base::Bind( |
| &OcclusionTrackerTest<Types>::CopyOutputCallback, |
| base::Unretained(this)))); |
| + layer->SetHasRenderSurface(true); |
| layer->PassCopyRequests(&requests); |
| } |
| void CalcDrawEtc(TestContentLayerImpl* root) { |
| DCHECK(root == root_.get()); |
| - DCHECK(!root->render_surface()); |
| Types::RecursiveUpdateNumChildren(root); |
| LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
| @@ -389,6 +396,11 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test { |
| const gfx::Transform identity_matrix; |
| + void CreateRenderSurfaceOnImplThread(Layer* root) {} |
|
danakj
2014/09/03 19:30:35
These seem redundant with SetForceRenderSurface, c
awoloszyn
2014/09/09 15:31:38
This would force a RenderSurface on the main threa
|
| + void CreateRenderSurfaceOnImplThread(LayerImpl* root) { |
| + root->SetHasRenderSurface(true); |
| + } |
| + |
| private: |
| void SetRootLayerOnMainThread(Layer* root) { |
| host_->SetRootLayer(scoped_refptr<Layer>(root)); |
| @@ -738,7 +750,7 @@ class OcclusionTrackerTestScaledRenderSurface |
| layer1_matrix.Scale(2.0, 2.0); |
| typename Types::ContentLayerType* layer1 = this->CreateDrawingLayer( |
| parent, layer1_matrix, gfx::PointF(), gfx::Size(100, 100), true); |
| - layer1->SetForceRenderSurface(true); |
| + Types::SetForceRenderSurface(layer1, true); |
| gfx::Transform layer2_matrix; |
| layer2_matrix.Translate(25.0, 25.0); |
| @@ -855,6 +867,7 @@ class OcclusionTrackerTestSurfaceRotatedOffAxis |
| typename Types::LayerType* child = this->CreateLayer( |
|
danakj
2014/09/03 19:30:35
Can you just CreateSurface here instead
awoloszyn
2014/09/09 15:31:37
Done.
|
| parent, child_transform, gfx::PointF(30.f, 30.f), gfx::Size(500, 500)); |
| child->SetMasksToBounds(true); |
|
danakj
2014/09/03 19:30:35
and drop this and the CreateRSOnImplThread
awoloszyn
2014/09/09 15:31:37
Done.
|
| + this->CreateRenderSurfaceOnImplThread(child); |
| typename Types::ContentLayerType* layer = this->CreateDrawingLayer( |
| child, layer_transform, gfx::PointF(), gfx::Size(500, 500), true); |
| this->CalcDrawEtc(root); |
| @@ -1172,6 +1185,9 @@ class OcclusionTrackerTestFilters : public OcclusionTrackerTest<Types> { |
| gfx::PointF(30.f, 30.f), |
| gfx::Size(500, 500), |
| true); |
| + this->CreateRenderSurfaceOnImplThread(blur_layer); |
| + this->CreateRenderSurfaceOnImplThread(opacity_layer); |
| + this->CreateRenderSurfaceOnImplThread(opaque_layer); |
| FilterOperations filters; |
| filters.Append(FilterOperation::CreateBlurFilter(10.f)); |
| @@ -2234,7 +2250,7 @@ class OcclusionTrackerTestDontOccludePixelsNeededForBackgroundFilter |
| gfx::Size(100, 100), |
| false); |
| filtered_surface->SetBackgroundFilters(filters); |
| - |
| + Types::SetForceRenderSurface(filtered_surface, true); |
| gfx::Rect occlusion_rect; |
| switch (i) { |
| case LEFT: |
| @@ -2349,6 +2365,8 @@ class OcclusionTrackerTestTwoBackgroundFiltersReduceOcclusionTwice |
| filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
| filtered_surface1->SetBackgroundFilters(filters); |
| filtered_surface2->SetBackgroundFilters(filters); |
| + this->CreateRenderSurfaceOnImplThread(filtered_surface1); |
| + this->CreateRenderSurfaceOnImplThread(filtered_surface2); |
| // Save the distance of influence for the blur effect. |
| int outset_top, outset_right, outset_bottom, outset_left; |
| @@ -2434,7 +2452,7 @@ class OcclusionTrackerTestDontReduceOcclusionBelowBackgroundFilter |
| FilterOperations filters; |
| filters.Append(FilterOperation::CreateBlurFilter(3.f)); |
| filtered_surface->SetBackgroundFilters(filters); |
| - |
| + this->CreateRenderSurfaceOnImplThread(filtered_surface); |
| this->CalcDrawEtc(parent); |
| TestOcclusionTrackerWithClip<typename Types::LayerType> occlusion( |
| @@ -2508,6 +2526,7 @@ class OcclusionTrackerTestDontReduceOcclusionIfBackgroundFilterIsOccluded |
| FilterOperations filters; |
| filters.Append(FilterOperation::CreateBlurFilter(3.f)); |
| filtered_surface->SetBackgroundFilters(filters); |
| + this->CreateRenderSurfaceOnImplThread(filtered_surface); |
| this->CalcDrawEtc(parent); |
| @@ -2604,6 +2623,7 @@ class OcclusionTrackerTestReduceOcclusionWhenBackgroundFilterIsPartiallyOccluded |
| FilterOperations filters; |
| filters.Append(FilterOperation::CreateBlurFilter(3.f)); |
| filtered_surface->SetBackgroundFilters(filters); |
| + this->CreateRenderSurfaceOnImplThread(filtered_surface); |
| // Save the distance of influence for the blur effect. |
| int outset_top, outset_right, outset_bottom, outset_left; |