| 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 1c28c7fa862d8f9cbfbdd968d475e483c3580f64..8438eb4c7762e47ea73a15b48ec906d920509c7a 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/paint/paint_flags.h"
|
| #include "cc/paint/paint_image.h"
|
| #include "cc/paint/paint_recorder.h"
|
| +#include "cc/test/fake_picture_layer.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"
|
| @@ -149,6 +150,63 @@ TEST_P(LayerTreeHostMasksPixelTest, MaskOfClippedLayer) {
|
| base::FilePath(FILE_PATH_LITERAL("mask_of_clipped_layer.png")));
|
| }
|
|
|
| +TEST_P(LayerTreeHostMasksPixelTest, MaskOfLargerLayer) {
|
| + scoped_refptr<SolidColorLayer> background =
|
| + CreateSolidColorLayer(gfx::Rect(100, 100), SK_ColorWHITE);
|
| +
|
| + scoped_refptr<SolidColorLayer> green = CreateSolidColorLayerWithBorder(
|
| + gfx::Rect(0, 0, 100, 100), kCSSGreen, 1, SK_ColorBLACK);
|
| + background->AddChild(green);
|
| +
|
| + 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->SetLayerMaskType(mask_type_);
|
| + green->SetMaskLayer(mask.get());
|
| +
|
| + if (raster_buffer_provider_type_ == RASTER_BUFFER_PROVIDER_TYPE_BITMAP) {
|
| + // Bitmap produces a sharper (but equivalent sized) mask.
|
| + float percentage_pixels_large_error = 40.0f;
|
| + float percentage_pixels_small_error = 0.0f;
|
| + float average_error_allowed_in_bad_pixels = 65.0f;
|
| + int large_error_allowed = 120;
|
| + int small_error_allowed = 0;
|
| + pixel_comparator_.reset(new FuzzyPixelComparator(
|
| + true, // discard_alpha
|
| + percentage_pixels_large_error, percentage_pixels_small_error,
|
| + average_error_allowed_in_bad_pixels, large_error_allowed,
|
| + small_error_allowed));
|
| + }
|
| +
|
| + RunPixelResourceTest(
|
| + background,
|
| + base::FilePath(FILE_PATH_LITERAL("mask_of_larger_layer.png")));
|
| +}
|
| +
|
| +TEST_P(LayerTreeHostMasksPixelTest, MaskOfLayerNonExactTextureSize) {
|
| + scoped_refptr<SolidColorLayer> background =
|
| + CreateSolidColorLayer(gfx::Rect(100, 100), SK_ColorWHITE);
|
| +
|
| + scoped_refptr<SolidColorLayer> green = CreateSolidColorLayerWithBorder(
|
| + gfx::Rect(0, 0, 100, 100), kCSSGreen, 1, SK_ColorBLACK);
|
| + background->AddChild(green);
|
| +
|
| + gfx::Size mask_bounds(100, 100);
|
| + MaskContentLayerClient client(mask_bounds);
|
| + scoped_refptr<FakePictureLayer> mask = FakePictureLayer::Create(&client);
|
| + mask->SetBounds(mask_bounds);
|
| + mask->SetIsDrawable(true);
|
| + mask->SetLayerMaskType(mask_type_);
|
| + mask->set_fixed_tile_size(gfx::Size(173, 135));
|
| + green->SetMaskLayer(mask.get());
|
| +
|
| + RunPixelResourceTest(background,
|
| + base::FilePath(FILE_PATH_LITERAL(
|
| + "mask_with_non_exact_texture_size.png")));
|
| +}
|
| +
|
| class CheckerContentLayerClient : public ContentLayerClient {
|
| public:
|
| CheckerContentLayerClient(const gfx::Size& bounds,
|
|
|