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

Unified Diff: cc/trees/occlusion_tracker_unittest.cc

Issue 465853004: Moving RenderSurface creation outside of CalcDrawProps (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 side-by-side diff with in-line comments
Download patch
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;
« cc/trees/layer_tree_impl_unittest.cc ('K') | « 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