| Index: cc/layers/nine_patch_layer_impl_unittest.cc
|
| diff --git a/cc/layers/nine_patch_layer_impl_unittest.cc b/cc/layers/nine_patch_layer_impl_unittest.cc
|
| index 2dbc6832683dbfefe17ea9f638a50207aadf6fdd..15fbb08be395414bc052d148ae2fe68ac4196435 100644
|
| --- a/cc/layers/nine_patch_layer_impl_unittest.cc
|
| +++ b/cc/layers/nine_patch_layer_impl_unittest.cc
|
| @@ -35,14 +35,28 @@ void NinePatchLayerLayoutTest(const gfx::Size& bitmap_size,
|
| const gfx::Rect& aperture_rect,
|
| const gfx::Size& layer_size,
|
| const gfx::Rect& border,
|
| + const gfx::Rect& occlusion,
|
| bool fill_center,
|
| size_t expected_quad_size) {
|
| scoped_ptr<RenderPass> render_pass = RenderPass::Create();
|
| gfx::Rect visible_layer_rect(layer_size);
|
| - gfx::Rect expected_remaining(border.x(),
|
| - border.y(),
|
| - layer_size.width() - border.width(),
|
| - layer_size.height() - border.height());
|
| + gfx::Rect expected_layer_remaining;
|
| + gfx::Rect expected_tex_remaining;
|
| +
|
| + if (!occlusion.IsEmpty()) {
|
| + expected_layer_remaining = occlusion;
|
| + expected_tex_remaining.SetRect(
|
| + occlusion.x(), occlusion.y(),
|
| + (bitmap_size.width() - occlusion.x()) -
|
| + (layer_size.width() - occlusion.right()),
|
| + (bitmap_size.height() - occlusion.y()) -
|
| + (layer_size.height() - occlusion.bottom()));
|
| + } else {
|
| + expected_layer_remaining.SetRect(border.x(), border.y(),
|
| + layer_size.width() - border.width(),
|
| + layer_size.height() - border.height());
|
| + expected_tex_remaining = aperture_rect;
|
| + }
|
|
|
| FakeImplTaskRunnerProvider task_runner_provider;
|
| TestSharedBitmapManager shared_bitmap_manager;
|
| @@ -67,7 +81,7 @@ void NinePatchLayerLayoutTest(const gfx::Size& bitmap_size,
|
| host_impl.CreateUIResource(uid, bitmap);
|
| layer->SetUIResourceId(uid);
|
| layer->SetImageBounds(bitmap_size);
|
| - layer->SetLayout(aperture_rect, border, fill_center, false);
|
| + layer->SetLayout(aperture_rect, border, fill_center, false, occlusion);
|
| AppendQuadsData data;
|
| layer->AppendQuads(render_pass.get(), &data);
|
|
|
| @@ -75,21 +89,21 @@ void NinePatchLayerLayoutTest(const gfx::Size& bitmap_size,
|
| const QuadList& quads = render_pass->quad_list;
|
| EXPECT_EQ(expected_quad_size, quads.size());
|
|
|
| - Region remaining(visible_layer_rect);
|
| + Region layer_remaining(visible_layer_rect);
|
| for (auto iter = quads.cbegin(); iter != quads.cend(); ++iter) {
|
| gfx::Rect quad_rect = iter->rect;
|
|
|
| EXPECT_TRUE(visible_layer_rect.Contains(quad_rect)) << iter.index();
|
| - EXPECT_TRUE(remaining.Contains(quad_rect)) << iter.index();
|
| - remaining.Subtract(Region(quad_rect));
|
| + EXPECT_TRUE(layer_remaining.Contains(quad_rect)) << iter.index();
|
| + layer_remaining.Subtract(Region(quad_rect));
|
| }
|
|
|
| // Check if the left-over quad is the same size as the mapped aperture quad in
|
| // layer space.
|
| if (!fill_center) {
|
| - EXPECT_EQ(expected_remaining, remaining.bounds());
|
| + EXPECT_EQ(expected_layer_remaining, layer_remaining.bounds());
|
| } else {
|
| - EXPECT_TRUE(remaining.bounds().IsEmpty());
|
| + EXPECT_TRUE(layer_remaining.bounds().IsEmpty());
|
| }
|
|
|
| // Verify UV rects
|
| @@ -104,11 +118,11 @@ void NinePatchLayerLayoutTest(const gfx::Size& bitmap_size,
|
| }
|
|
|
| if (!fill_center) {
|
| - EXPECT_EQ(aperture_rect, tex_remaining.bounds());
|
| - Region aperture_region(aperture_rect);
|
| + EXPECT_EQ(expected_tex_remaining, tex_remaining.bounds());
|
| + Region aperture_region(expected_tex_remaining);
|
| EXPECT_EQ(aperture_region, tex_remaining);
|
| } else {
|
| - EXPECT_TRUE(remaining.bounds().IsEmpty());
|
| + EXPECT_TRUE(layer_remaining.bounds().IsEmpty());
|
| }
|
| }
|
|
|
| @@ -121,12 +135,8 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuads) {
|
| gfx::Rect border(40, 40, 80, 80);
|
| bool fill_center = false;
|
| size_t expected_quad_size = 8;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
|
|
| // The bounds of the layer are set to less than the bitmap size.
|
| bitmap_size = gfx::Size(100, 100);
|
| @@ -135,12 +145,8 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuads) {
|
| border = gfx::Rect(10, 10, 25, 15);
|
| fill_center = true;
|
| expected_quad_size = 9;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
|
|
| // Layer and image sizes are equal.
|
| bitmap_size = gfx::Size(100, 100);
|
| @@ -149,12 +155,21 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuads) {
|
| border = gfx::Rect(20, 30, 40, 50);
|
| fill_center = true;
|
| expected_quad_size = 9;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
| +}
|
| +
|
| +TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithOcclusion) {
|
| + // Input is a 100x100 bitmap with a 40x50 aperture at x=20, y=30.
|
| + // The bounds of the layer are set to 400x400.
|
| + gfx::Size bitmap_size(100, 100);
|
| + gfx::Rect aperture_rect(30, 30, 40, 40);
|
| + gfx::Size layer_size(400, 400);
|
| + gfx::Rect occlusion(20, 20, 360, 360);
|
| + bool fill_center = false;
|
| + size_t expected_quad_size = 12;
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, gfx::Rect(),
|
| + occlusion, fill_center, expected_quad_size);
|
| }
|
|
|
| TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) {
|
| @@ -166,12 +181,8 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) {
|
| gfx::Rect border(10, 0, 20, 10);
|
| bool fill_center = false;
|
| size_t expected_quad_size = 5;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
|
|
| // The top and left components of the 9-patch are empty, so there should be no
|
| // quads for the left and top components.
|
| @@ -181,12 +192,8 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) {
|
| border = gfx::Rect(0, 0, 10, 10);
|
| fill_center = false;
|
| expected_quad_size = 3;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
|
|
| // The aperture is the size of the bitmap and the center doesn't draw.
|
| bitmap_size = gfx::Size(100, 100);
|
| @@ -195,12 +202,8 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) {
|
| border = gfx::Rect(0, 0, 0, 0);
|
| fill_center = false;
|
| expected_quad_size = 0;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
|
|
| // The aperture is the size of the bitmap and the center does draw.
|
| bitmap_size = gfx::Size(100, 100);
|
| @@ -209,12 +212,8 @@ TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) {
|
| border = gfx::Rect(0, 0, 0, 0);
|
| fill_center = true;
|
| expected_quad_size = 1;
|
| - NinePatchLayerLayoutTest(bitmap_size,
|
| - aperture_rect,
|
| - layer_size,
|
| - border,
|
| - fill_center,
|
| - expected_quad_size);
|
| + NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
|
| + gfx::Rect(), fill_center, expected_quad_size);
|
| }
|
|
|
| TEST(NinePatchLayerImplTest, Occlusion) {
|
| @@ -239,7 +238,7 @@ TEST(NinePatchLayerImplTest, Occlusion) {
|
|
|
| gfx::Rect aperture = gfx::Rect(3, 3, 4, 4);
|
| gfx::Rect border = gfx::Rect(300, 300, 400, 400);
|
| - nine_patch_layer_impl->SetLayout(aperture, border, true, false);
|
| + nine_patch_layer_impl->SetLayout(aperture, border, true, false, gfx::Rect());
|
|
|
| impl.CalcDrawProps(viewport_size);
|
|
|
| @@ -317,7 +316,8 @@ TEST(NinePatchLayerImplTest, OpaqueRect) {
|
|
|
| gfx::Rect aperture = gfx::Rect(3, 3, 4, 4);
|
| gfx::Rect border = gfx::Rect(300, 300, 400, 400);
|
| - nine_patch_layer_impl->SetLayout(aperture, border, true, false);
|
| + nine_patch_layer_impl->SetLayout(aperture, border, true, false,
|
| + gfx::Rect());
|
|
|
| impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, gfx::Rect());
|
|
|
|
|