| Index: cc/trees/layer_tree_host_pixeltest_masks.cc
|
| diff --git a/cc/trees/layer_tree_host_pixeltest_masks.cc b/cc/trees/layer_tree_host_pixeltest_masks.cc
|
| index a6380781470288179aefc0b7fad02666a45ad2e1..9ca88ff0e376c05915d2b97ed56f04b1c7319c7a 100644
|
| --- a/cc/trees/layer_tree_host_pixeltest_masks.cc
|
| +++ b/cc/trees/layer_tree_host_pixeltest_masks.cc
|
| @@ -13,6 +13,7 @@
|
| #include "cc/playback/drawing_display_item.h"
|
| #include "cc/test/layer_tree_pixel_resource_test.h"
|
| #include "cc/test/pixel_comparator.h"
|
| +#include "cc/test/solid_color_content_layer_client.h"
|
| #include "third_party/skia/include/core/SkImage.h"
|
| #include "third_party/skia/include/core/SkPictureRecorder.h"
|
| #include "third_party/skia/include/core/SkSurface.h"
|
| @@ -178,6 +179,41 @@ TEST_P(LayerTreeHostMasksPixelTest, MaskWithReplica) {
|
| background, base::FilePath(FILE_PATH_LITERAL("mask_with_replica.png")));
|
| }
|
|
|
| +// Test collapsing of render passes containing a single tile quad and
|
| +// drawing them directly with masks and replicas.
|
| +TEST_P(LayerTreeHostMasksPixelTest, ContentLayerMaskWithReplica) {
|
| + scoped_refptr<SolidColorLayer> background =
|
| + CreateSolidColorLayer(gfx::Rect(100, 100), SK_ColorWHITE);
|
| +
|
| + gfx::Size mask_bounds(50, 50);
|
| + MaskContentLayerClient client(mask_bounds);
|
| + scoped_refptr<PictureLayer> mask = PictureLayer::Create(&client);
|
| + mask->SetBounds(mask_bounds);
|
| + mask->SetIsDrawable(true);
|
| + mask->SetIsMask(true);
|
| +
|
| + // Use a border to defeat solid color detection to force a tile quad.
|
| + SolidColorContentLayerClient green_client(kCSSGreen, mask_bounds, 1,
|
| + SK_ColorBLACK);
|
| + scoped_refptr<PictureLayer> green = PictureLayer::Create(&green_client);
|
| + green->SetBounds(mask_bounds);
|
| + green->SetIsDrawable(true);
|
| + background->AddChild(green);
|
| + green->SetMaskLayer(mask.get());
|
| +
|
| + gfx::Transform replica_transform;
|
| + replica_transform.Rotate(-90.0);
|
| +
|
| + scoped_refptr<Layer> replica = Layer::Create();
|
| + replica->SetTransformOrigin(gfx::Point3F(25.f, 25.f, 0.f));
|
| + replica->SetPosition(gfx::PointF(50.f, 50.f));
|
| + replica->SetTransform(replica_transform);
|
| + green->SetReplicaLayer(replica.get());
|
| +
|
| + RunPixelResourceTest(
|
| + background, base::FilePath(FILE_PATH_LITERAL("mask_with_replica.png")));
|
| +}
|
| +
|
| TEST_P(LayerTreeHostMasksPixelTest, MaskWithReplicaOfClippedLayer) {
|
| scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer(
|
| gfx::Rect(100, 100), SK_ColorWHITE);
|
|
|