| Index: cc/trees/layer_tree_host_common_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc
|
| index e0436bad3cca6f0f732ca8c30e6316972c1edf9e..b40f66db486ddf63d9191fe933b0d195e9deb456 100644
|
| --- a/cc/trees/layer_tree_host_common_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_common_unittest.cc
|
| @@ -1392,6 +1392,36 @@ TEST_F(LayerTreeHostCommonTest, RenderSurfaceListForTransparentChild) {
|
| EXPECT_EQ(gfx::Rect(), parent->drawable_content_rect());
|
| }
|
|
|
| +TEST_F(LayerTreeHostCommonTest, RenderSurfaceForBlendMode) {
|
| + scoped_refptr<Layer> parent = Layer::Create();
|
| + scoped_refptr<LayerWithForcedDrawsContent> child =
|
| + make_scoped_refptr(new LayerWithForcedDrawsContent());
|
| +
|
| + scoped_ptr<FakeLayerTreeHost> host(CreateFakeLayerTreeHost());
|
| + host->SetRootLayer(parent);
|
| +
|
| + const gfx::Transform identity_matrix;
|
| + const SkXfermode::Mode blend_mode = SkXfermode::kMultiply_Mode;
|
| + SetLayerPropertiesForTesting(child.get(), identity_matrix, gfx::Point3F(),
|
| + gfx::PointF(), gfx::Size(10, 10), true, false);
|
| +
|
| + parent->AddChild(child);
|
| + child->SetBlendMode(blend_mode);
|
| +
|
| + RenderSurfaceLayerList render_surface_layer_list;
|
| + LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs(
|
| + parent.get(), parent->bounds(), &render_surface_layer_list);
|
| + LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
| +
|
| + // Since the child layer has a blend mode other than normal, it should get
|
| + // its own render surface. Also, layer's draw_properties should contain the
|
| + // default blend mode, since the render surface becomes responsible for
|
| + // applying the blend mode.
|
| + ASSERT_TRUE(child->render_surface());
|
| + EXPECT_EQ(1U, child->render_surface()->layer_list().size());
|
| + EXPECT_EQ(SkXfermode::kSrcOver_Mode, child->draw_properties().blend_mode);
|
| +}
|
| +
|
| TEST_F(LayerTreeHostCommonTest, ForceRenderSurface) {
|
| scoped_refptr<Layer> parent = Layer::Create();
|
| scoped_refptr<Layer> render_surface1 = Layer::Create();
|
|
|