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

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: Updated unit tests 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..8dbc664932ea042b76764dd9d42199cecbaeedd5 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,13 @@ struct OcclusionTrackerTestImplThreadTypes {
return layer->PassAs<LayerType>();
}
+ static void SetForceRenderSurface(LayerType* layer, bool force) {
+ if (force) {
+ layer->CreateRenderSurface();
+ } else {
+ layer->ClearRenderSurface();
+ }
+ }
static void DestroyLayer(LayerPtrType* layer) { layer->reset(); }
static void RecursiveUpdateNumChildren(LayerType* layer) {
@@ -194,6 +204,7 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test {
DCHECK(!root_.get());
root_ = Types::PassLayerPtr(&layer);
+ CreateRenderSurfaceOnImplThread(layer_ptr);
SetRootLayerOnMainThread(layer_ptr);
return layer_ptr;
@@ -216,7 +227,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 +288,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 +316,12 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test {
CopyOutputRequest::CreateBitmapRequest(base::Bind(
&OcclusionTrackerTest<Types>::CopyOutputCallback,
base::Unretained(this))));
+ layer->CreateRenderSurface();
layer->PassCopyRequests(&requests);
}
void CalcDrawEtc(TestContentLayerImpl* root) {
DCHECK(root == root_.get());
- DCHECK(!root->render_surface());
Types::RecursiveUpdateNumChildren(root);
LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs(
@@ -389,6 +400,11 @@ template <typename Types> class OcclusionTrackerTest : public testing::Test {
const gfx::Transform identity_matrix;
+ void CreateRenderSurfaceOnImplThread(Layer* root) {}
+ void CreateRenderSurfaceOnImplThread(LayerImpl* root) {
+ root->CreateRenderSurface();
+ }
+
private:
void SetRootLayerOnMainThread(Layer* root) {
host_->SetRootLayer(scoped_refptr<Layer>(root));
@@ -738,7 +754,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 +871,7 @@ class OcclusionTrackerTestSurfaceRotatedOffAxis
typename Types::LayerType* child = this->CreateLayer(
parent, child_transform, gfx::PointF(30.f, 30.f), gfx::Size(500, 500));
child->SetMasksToBounds(true);
+ this->CreateRenderSurfaceOnImplThread(child);
typename Types::ContentLayerType* layer = this->CreateDrawingLayer(
child, layer_transform, gfx::PointF(), gfx::Size(500, 500), true);
this->CalcDrawEtc(root);
@@ -1172,6 +1189,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 +2254,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 +2369,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 +2456,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 +2530,7 @@ class OcclusionTrackerTestDontReduceOcclusionIfBackgroundFilterIsOccluded
FilterOperations filters;
filters.Append(FilterOperation::CreateBlurFilter(3.f));
filtered_surface->SetBackgroundFilters(filters);
+ this->CreateRenderSurfaceOnImplThread(filtered_surface);
this->CalcDrawEtc(parent);
@@ -2604,6 +2627,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