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

Unified Diff: cc/trees/layer_tree_host_pixeltest_readback.cc

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_on_demand_raster.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_pixeltest_readback.cc
diff --git a/cc/trees/layer_tree_host_pixeltest_readback.cc b/cc/trees/layer_tree_host_pixeltest_readback.cc
index 0a06144e87c3481937292b558560558471f28e50..b3729047aa528d7552944ee5abf511d84f4a62da 100644
--- a/cc/trees/layer_tree_host_pixeltest_readback.cc
+++ b/cc/trees/layer_tree_host_pixeltest_readback.cc
@@ -19,18 +19,30 @@
namespace cc {
namespace {
-class LayerTreeHostReadbackPixelTest : public LayerTreePixelTest {
+// Can't templatize a class on its own members, so ReadbackType and
+// ReadbackTestConfig are declared here, before LayerTreeHostReadbackPixelTest.
+enum ReadbackType {
+ READBACK_INVALID,
+ READBACK_DEFAULT,
+ READBACK_BITMAP,
+};
+
+struct ReadbackTestConfig {
+ ReadbackTestConfig(LayerTreePixelTest::PixelTestType pixel_test_type_,
+ ReadbackType readback_type_)
+ : pixel_test_type(pixel_test_type_), readback_type(readback_type_) {}
+ LayerTreePixelTest::PixelTestType pixel_test_type;
+ ReadbackType readback_type;
+};
+
+class LayerTreeHostReadbackPixelTest
+ : public LayerTreePixelTest,
+ public testing::WithParamInterface<ReadbackTestConfig> {
protected:
LayerTreeHostReadbackPixelTest()
: readback_type_(READBACK_INVALID),
insert_copy_request_after_frame_count_(0) {}
- enum ReadbackType {
- READBACK_INVALID,
- READBACK_DEFAULT,
- READBACK_BITMAP,
- };
-
void RunReadbackTest(PixelTestType test_type,
ReadbackType readback_type,
scoped_refptr<Layer> content_root,
@@ -124,49 +136,7 @@ class LayerTreeHostReadbackPixelTest : public LayerTreePixelTest {
void IgnoreReadbackResult(scoped_ptr<CopyOutputResult> result) {
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayer_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- RunReadbackTest(PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayer_Software_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- RunReadbackTest(PIXEL_TEST_SOFTWARE,
- READBACK_BITMAP,
- background,
- base::FilePath(FILE_PATH_LITERAL("green.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayer_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- RunReadbackTest(PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- base::FilePath(FILE_PATH_LITERAL("green.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayer_GL) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackRootLayer) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
@@ -174,13 +144,11 @@ TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayer_GL) {
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
background->AddChild(green);
- RunReadbackTest(PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green.png")));
+ RunReadbackTest(GetParam().pixel_test_type, GetParam().readback_type,
+ background, base::FilePath(FILE_PATH_LITERAL("green.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayerWithChild_Software) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackRootLayerWithChild) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
@@ -193,51 +161,11 @@ TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayerWithChild_Software) {
green->AddChild(blue);
RunReadbackTest(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
+ GetParam().pixel_test_type, GetParam().readback_type, background,
base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayerWithChild_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- RunReadbackTest(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackRootLayerWithChild_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- RunReadbackTest(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayer_Software) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayer) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
@@ -246,728 +174,284 @@ TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayer_Software) {
background->AddChild(green);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ green.get(), base::FilePath(FILE_PATH_LITERAL("green.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayer_GL_Bitmap) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackSmallNonRootLayer) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
+ CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
background->AddChild(green);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ green.get(), base::FilePath(FILE_PATH_LITERAL("green_small.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayer_GL) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackSmallNonRootLayerWithChild) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
+ CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
background->AddChild(green);
+ scoped_refptr<SolidColorLayer> blue =
+ CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
+ green->AddChild(blue);
+
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
+ GetParam().pixel_test_type, GetParam().readback_type, background,
green.get(),
- base::FilePath(FILE_PATH_LITERAL("green.png")));
+ base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSmallNonRootLayer_Software) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackSubtreeSurroundsTargetLayer) {
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
+ CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
+
+ scoped_refptr<SolidColorLayer> target =
+ CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorRED);
+ background->AddChild(target);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
- background->AddChild(green);
+ CreateSolidColorLayer(gfx::Rect(-100, -100, 300, 300), SK_ColorGREEN);
+ target->AddChild(green);
+
+ scoped_refptr<SolidColorLayer> blue =
+ CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
+ target->AddChild(blue);
+ copy_subrect_ = gfx::Rect(0, 0, 100, 100);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ target.get(),
+ base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSmallNonRootLayer_GL_Bitmap) {
+TEST_P(LayerTreeHostReadbackPixelTest,
+ ReadbackSubtreeExtendsBeyondTargetLayer) {
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
+ CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
+
+ scoped_refptr<SolidColorLayer> target =
+ CreateSolidColorLayer(gfx::Rect(50, 50, 150, 150), SK_ColorRED);
+ background->AddChild(target);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
- background->AddChild(green);
+ CreateSolidColorLayer(gfx::Rect(50, 50, 200, 200), SK_ColorGREEN);
+ target->AddChild(green);
+
+ scoped_refptr<SolidColorLayer> blue =
+ CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
+ target->AddChild(blue);
+ copy_subrect_ = gfx::Rect(50, 50, 100, 100);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ target.get(),
+ base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSmallNonRootLayer_GL) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackHiddenSubtree) {
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
- background->AddChild(green);
+ scoped_refptr<SolidColorLayer> hidden_target =
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
+ hidden_target->SetHideLayerAndSubtree(true);
+ background->AddChild(hidden_target);
+
+ scoped_refptr<SolidColorLayer> blue =
+ CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
+ hidden_target->AddChild(blue);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ hidden_target.get(),
+ base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSmallNonRootLayerWithChild_Software) {
+TEST_P(LayerTreeHostReadbackPixelTest,
+ HiddenSubtreeNotVisibleWhenDrawnForReadback) {
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
- background->AddChild(green);
+ scoped_refptr<SolidColorLayer> hidden_target =
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
+ hidden_target->SetHideLayerAndSubtree(true);
+ background->AddChild(hidden_target);
scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
+ CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
+ hidden_target->AddChild(blue);
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
+ hidden_target->RequestCopyOfOutput(CopyOutputRequest::CreateBitmapRequest(
+ base::Bind(&IgnoreReadbackResult)));
+ RunReadbackTest(GetParam().pixel_test_type, GetParam().readback_type,
+ background, base::FilePath(FILE_PATH_LITERAL("black.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSmallNonRootLayerWithChild_GL_Bitmap) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackSubrect) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
background->AddChild(green);
scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
+ CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
green->AddChild(blue);
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- green.get(),
+ // Grab the middle of the root layer.
+ copy_subrect_ = gfx::Rect(50, 50, 100, 100);
+
+ RunReadbackTest(
+ GetParam().pixel_test_type, GetParam().readback_type, background,
base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSmallNonRootLayerWithChild_GL) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerSubrect) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorGREEN);
+ CreateSolidColorLayer(gfx::Rect(25, 25, 150, 150), SK_ColorGREEN);
background->AddChild(green);
scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
+ CreateSolidColorLayer(gfx::Rect(75, 75, 50, 50), SK_ColorBLUE);
green->AddChild(blue);
+ // Grab the middle of the green layer.
+ copy_subrect_ = gfx::Rect(25, 25, 100, 100);
+
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
+ GetParam().pixel_test_type, GetParam().readback_type, background,
green.get(),
base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSubtreeSurroundsTargetLayer_Software) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackWhenNoDamage) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorRED);
- background->AddChild(target);
+ scoped_refptr<SolidColorLayer> parent =
+ CreateSolidColorLayer(gfx::Rect(0, 0, 150, 150), SK_ColorRED);
+ background->AddChild(parent);
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(-100, -100, 300, 300), SK_ColorGREEN);
- target->AddChild(green);
+ scoped_refptr<SolidColorLayer> target =
+ CreateSolidColorLayer(gfx::Rect(0, 0, 100, 100), SK_ColorGREEN);
+ parent->AddChild(target);
scoped_refptr<SolidColorLayer> blue =
CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
target->AddChild(blue);
- copy_subrect_ = gfx::Rect(0, 0, 100, 100);
+ insert_copy_request_after_frame_count_ = 1;
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
+ GetParam().pixel_test_type, GetParam().readback_type, background,
target.get(),
base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSubtreeSurroundsLayer_GL_Bitmap) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackOutsideViewportWhenNoDamage) {
scoped_refptr<SolidColorLayer> background =
CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorRED);
- background->AddChild(target);
+ scoped_refptr<SolidColorLayer> parent =
+ CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorRED);
+ EXPECT_FALSE(parent->masks_to_bounds());
+ background->AddChild(parent);
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(-100, -100, 300, 300), SK_ColorGREEN);
- target->AddChild(green);
+ scoped_refptr<SolidColorLayer> target =
+ CreateSolidColorLayer(gfx::Rect(250, 250, 100, 100), SK_ColorGREEN);
+ parent->AddChild(target);
scoped_refptr<SolidColorLayer> blue =
CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
target->AddChild(blue);
- copy_subrect_ = gfx::Rect(0, 0, 100, 100);
+ insert_copy_request_after_frame_count_ = 1;
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
+ GetParam().pixel_test_type, GetParam().readback_type, background,
target.get(),
base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSubtreeSurroundsTargetLayer_GL) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerOutsideViewport) {
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(100, 100, 100, 100), SK_ColorRED);
- background->AddChild(target);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(-100, -100, 300, 300), SK_ColorGREEN);
- target->AddChild(green);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
+ // Only the top left quarter of the layer is inside the viewport, so the
+ // blue layer is entirely outside.
+ green->SetPosition(gfx::Point(100, 100));
+ background->AddChild(green);
scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
+ CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
+ green->AddChild(blue);
- copy_subrect_ = gfx::Rect(0, 0, 100, 100);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ green.get(),
+ base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSubtreeExtendsBeyondTargetLayer_Software) {
+TEST_P(LayerTreeHostReadbackPixelTest, ReadbackNonRootOrFirstLayer) {
+ // This test has 3 render passes with the copy request on the render pass in
+ // the middle. This test caught an issue where copy requests on non-root
+ // non-first render passes were being treated differently from the first
+ // render pass.
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(50, 50, 150, 150), SK_ColorRED);
- background->AddChild(target);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(50, 50, 200, 200), SK_ColorGREEN);
- target->AddChild(green);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
+ CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
+ blue->RequestCopyOfOutput(CopyOutputRequest::CreateBitmapRequest(
+ base::Bind(&IgnoreReadbackResult)));
+ background->AddChild(blue);
- copy_subrect_ = gfx::Rect(50, 50, 100, 100);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ background.get(),
+ base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSubtreeExtendsBeyondTargetLayer_GL_Bitmap) {
+TEST_P(LayerTreeHostReadbackPixelTest, MultipleReadbacksOnLayer) {
+ // This test has 2 copy requests on the background layer. One is added in the
+ // test body, another is added in RunReadbackTestWithReadbackTarget. For every
+ // copy request after the first, state must be restored via a call to
+ // UseRenderPass (see http://crbug.com/99393). This test ensures that the
+ // renderer correctly handles cases where UseRenderPass is called multiple
+ // times for a single layer.
scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(50, 50, 150, 150), SK_ColorRED);
- background->AddChild(target);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(50, 50, 200, 200), SK_ColorGREEN);
- target->AddChild(green);
+ CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
+ background->RequestCopyOfOutput(CopyOutputRequest::CreateBitmapRequest(
+ base::Bind(&IgnoreReadbackResult)));
- copy_subrect_ = gfx::Rect(50, 50, 100, 100);
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
+ GetParam().pixel_test_type, GetParam().readback_type, background,
+ background.get(), base::FilePath(FILE_PATH_LITERAL("green.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackSubtreeExtendsBeyondTargetLayer_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(50, 50, 150, 150), SK_ColorRED);
- background->AddChild(target);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(50, 50, 200, 200), SK_ColorGREEN);
- target->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- copy_subrect_ = gfx::Rect(50, 50, 100, 100);
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackHiddenSubtree_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
-
- scoped_refptr<SolidColorLayer> hidden_target =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- hidden_target->SetHideLayerAndSubtree(true);
- background->AddChild(hidden_target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- hidden_target->AddChild(blue);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- hidden_target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackHiddenSubtree_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
-
- scoped_refptr<SolidColorLayer> hidden_target =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- hidden_target->SetHideLayerAndSubtree(true);
- background->AddChild(hidden_target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- hidden_target->AddChild(blue);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- hidden_target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackHiddenSubtree_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
-
- scoped_refptr<SolidColorLayer> hidden_target =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- hidden_target->SetHideLayerAndSubtree(true);
- background->AddChild(hidden_target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- hidden_target->AddChild(blue);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- hidden_target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest,
- HiddenSubtreeNotVisibleWhenDrawnForReadback_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
-
- scoped_refptr<SolidColorLayer> hidden_target =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- hidden_target->SetHideLayerAndSubtree(true);
- background->AddChild(hidden_target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- hidden_target->AddChild(blue);
-
- hidden_target->RequestCopyOfOutput(CopyOutputRequest::CreateBitmapRequest(
- base::Bind(&IgnoreReadbackResult)));
- RunReadbackTest(PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("black.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest,
- HiddenSubtreeNotVisibleWhenDrawnForReadback_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
-
- scoped_refptr<SolidColorLayer> hidden_target =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- hidden_target->SetHideLayerAndSubtree(true);
- background->AddChild(hidden_target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- hidden_target->AddChild(blue);
-
- hidden_target->RequestCopyOfOutput(CopyOutputRequest::CreateBitmapRequest(
- base::Bind(&IgnoreReadbackResult)));
- RunReadbackTest(PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- base::FilePath(FILE_PATH_LITERAL("black.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest,
- HiddenSubtreeNotVisibleWhenDrawnForReadback_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorBLACK);
-
- scoped_refptr<SolidColorLayer> hidden_target =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- hidden_target->SetHideLayerAndSubtree(true);
- background->AddChild(hidden_target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- hidden_target->AddChild(blue);
-
- hidden_target->RequestCopyOfOutput(CopyOutputRequest::CreateBitmapRequest(
- base::Bind(&IgnoreReadbackResult)));
- RunReadbackTest(PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("black.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSubrect_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- // Grab the middle of the root layer.
- copy_subrect_ = gfx::Rect(50, 50, 100, 100);
-
- RunReadbackTest(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSubrect_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- // Grab the middle of the root layer.
- copy_subrect_ = gfx::Rect(50, 50, 100, 100);
-
- RunReadbackTest(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackSubrect_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(100, 100, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- // Grab the middle of the root layer.
- copy_subrect_ = gfx::Rect(50, 50, 100, 100);
-
- RunReadbackTest(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerSubrect_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(25, 25, 150, 150), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(75, 75, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- // Grab the middle of the green layer.
- copy_subrect_ = gfx::Rect(25, 25, 100, 100);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerSubrect_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(25, 25, 150, 150), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(75, 75, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- // Grab the middle of the green layer.
- copy_subrect_ = gfx::Rect(25, 25, 100, 100);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerSubrect_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(25, 25, 150, 150), SK_ColorGREEN);
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(75, 75, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- // Grab the middle of the green layer.
- copy_subrect_ = gfx::Rect(25, 25, 100, 100);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackWhenNoDamage_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> parent =
- CreateSolidColorLayer(gfx::Rect(0, 0, 150, 150), SK_ColorRED);
- background->AddChild(parent);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(0, 0, 100, 100), SK_ColorGREEN);
- parent->AddChild(target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- insert_copy_request_after_frame_count_ = 1;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackWhenNoDamage_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> parent =
- CreateSolidColorLayer(gfx::Rect(0, 0, 150, 150), SK_ColorRED);
- background->AddChild(parent);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(0, 0, 100, 100), SK_ColorGREEN);
- parent->AddChild(target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- insert_copy_request_after_frame_count_ = 1;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackWhenNoDamage_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> parent =
- CreateSolidColorLayer(gfx::Rect(0, 0, 150, 150), SK_ColorRED);
- background->AddChild(parent);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(0, 0, 100, 100), SK_ColorGREEN);
- parent->AddChild(target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- insert_copy_request_after_frame_count_ = 1;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackOutsideViewportWhenNoDamage_Software) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> parent =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorRED);
- EXPECT_FALSE(parent->masks_to_bounds());
- background->AddChild(parent);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(250, 250, 100, 100), SK_ColorGREEN);
- parent->AddChild(target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- insert_copy_request_after_frame_count_ = 1;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest,
- ReadbackOutsideViewportWhenNoDamage_GL_Bitmap) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> parent =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorRED);
- EXPECT_FALSE(parent->masks_to_bounds());
- background->AddChild(parent);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(250, 250, 100, 100), SK_ColorGREEN);
- parent->AddChild(target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- insert_copy_request_after_frame_count_ = 1;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_BITMAP,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackOutsideViewportWhenNoDamage_GL) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> parent =
- CreateSolidColorLayer(gfx::Rect(0, 0, 200, 200), SK_ColorRED);
- EXPECT_FALSE(parent->masks_to_bounds());
- background->AddChild(parent);
-
- scoped_refptr<SolidColorLayer> target =
- CreateSolidColorLayer(gfx::Rect(250, 250, 100, 100), SK_ColorGREEN);
- parent->AddChild(target);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(50, 50, 50, 50), SK_ColorBLUE);
- target->AddChild(blue);
-
- insert_copy_request_after_frame_count_ = 1;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- target.get(),
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
+INSTANTIATE_TEST_CASE_P(
+ LayerTreeHostReadbackPixelTests,
+ LayerTreeHostReadbackPixelTest,
+ ::testing::Values(
+ ReadbackTestConfig(LayerTreeHostReadbackPixelTest::PIXEL_TEST_SOFTWARE,
+ READBACK_DEFAULT),
+ ReadbackTestConfig(LayerTreeHostReadbackPixelTest::PIXEL_TEST_GL,
+ READBACK_DEFAULT),
+ ReadbackTestConfig(LayerTreeHostReadbackPixelTest::PIXEL_TEST_GL,
+ READBACK_BITMAP)));
class LayerTreeHostReadbackDeviceScalePixelTest
: public LayerTreeHostReadbackPixelTest {
@@ -999,36 +483,7 @@ class LayerTreeHostReadbackDeviceScalePixelTest
SolidColorContentLayerClient blue_client_;
};
-TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, ReadbackSubrect_Software) {
- scoped_refptr<FakePictureLayer> background =
- FakePictureLayer::Create(&white_client_);
- background->SetBounds(gfx::Size(100, 100));
- background->SetIsDrawable(true);
-
- scoped_refptr<FakePictureLayer> green =
- FakePictureLayer::Create(&green_client_);
- green->SetBounds(gfx::Size(100, 100));
- green->SetIsDrawable(true);
- background->AddChild(green);
-
- scoped_refptr<FakePictureLayer> blue =
- FakePictureLayer::Create(&blue_client_);
- blue->SetPosition(gfx::Point(50, 50));
- blue->SetBounds(gfx::Size(25, 25));
- blue->SetIsDrawable(true);
- green->AddChild(blue);
-
- // Grab the middle of the root layer.
- copy_subrect_ = gfx::Rect(25, 25, 50, 50);
- device_scale_factor_ = 2.f;
- RunReadbackTest(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, ReadbackSubrect_GL) {
+TEST_P(LayerTreeHostReadbackDeviceScalePixelTest, ReadbackSubrect) {
scoped_refptr<FakePictureLayer> background =
FakePictureLayer::Create(&white_client_);
background->SetBounds(gfx::Size(100, 100));
@@ -1051,46 +506,11 @@ TEST_F(LayerTreeHostReadbackDeviceScalePixelTest, ReadbackSubrect_GL) {
copy_subrect_ = gfx::Rect(25, 25, 50, 50);
device_scale_factor_ = 2.f;
RunReadbackTest(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
-}
-
-TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
- ReadbackNonRootLayerSubrect_Software) {
- scoped_refptr<FakePictureLayer> background =
- FakePictureLayer::Create(&white_client_);
- background->SetBounds(gfx::Size(100, 100));
- background->SetIsDrawable(true);
-
- scoped_refptr<FakePictureLayer> green =
- FakePictureLayer::Create(&green_client_);
- green->SetPosition(gfx::Point(10, 20));
- green->SetBounds(gfx::Size(90, 80));
- green->SetIsDrawable(true);
- background->AddChild(green);
-
- scoped_refptr<FakePictureLayer> blue =
- FakePictureLayer::Create(&blue_client_);
- blue->SetPosition(gfx::Point(50, 50));
- blue->SetBounds(gfx::Size(25, 25));
- blue->SetIsDrawable(true);
- green->AddChild(blue);
-
- // Grab the green layer's content with blue in the bottom right.
- copy_subrect_ = gfx::Rect(25, 25, 50, 50);
- device_scale_factor_ = 2.f;
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_SOFTWARE,
- READBACK_DEFAULT,
- background,
- green.get(),
+ GetParam().pixel_test_type, GetParam().readback_type, background,
base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
- ReadbackNonRootLayerSubrect_GL) {
+TEST_P(LayerTreeHostReadbackDeviceScalePixelTest, ReadbackNonRootLayerSubrect) {
scoped_refptr<FakePictureLayer> background =
FakePictureLayer::Create(&white_client_);
background->SetBounds(gfx::Size(100, 100));
@@ -1114,35 +534,21 @@ TEST_F(LayerTreeHostReadbackDeviceScalePixelTest,
copy_subrect_ = gfx::Rect(25, 25, 50, 50);
device_scale_factor_ = 2.f;
RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
+ GetParam().pixel_test_type, GetParam().readback_type, background,
green.get(),
base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
}
-TEST_F(LayerTreeHostReadbackPixelTest, ReadbackNonRootLayerOutsideViewport) {
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorWHITE);
-
- scoped_refptr<SolidColorLayer> green =
- CreateSolidColorLayer(gfx::Rect(200, 200), SK_ColorGREEN);
- // Only the top left quarter of the layer is inside the viewport, so the
- // blue layer is entirely outside.
- green->SetPosition(gfx::Point(100, 100));
- background->AddChild(green);
-
- scoped_refptr<SolidColorLayer> blue =
- CreateSolidColorLayer(gfx::Rect(150, 150, 50, 50), SK_ColorBLUE);
- green->AddChild(blue);
-
- RunReadbackTestWithReadbackTarget(
- PIXEL_TEST_GL,
- READBACK_DEFAULT,
- background,
- green.get(),
- base::FilePath(FILE_PATH_LITERAL("green_with_blue_corner.png")));
-}
+INSTANTIATE_TEST_CASE_P(
+ LayerTreeHostReadbackDeviceScalePixelTests,
+ LayerTreeHostReadbackDeviceScalePixelTest,
+ ::testing::Values(
+ ReadbackTestConfig(LayerTreeHostReadbackPixelTest::PIXEL_TEST_SOFTWARE,
+ READBACK_DEFAULT),
+ ReadbackTestConfig(LayerTreeHostReadbackPixelTest::PIXEL_TEST_GL,
+ READBACK_DEFAULT),
+ ReadbackTestConfig(LayerTreeHostReadbackPixelTest::PIXEL_TEST_GL,
+ READBACK_BITMAP)));
} // namespace
} // namespace cc
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_on_demand_raster.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698