| Index: cc/trees/layer_tree_host_unittest_occlusion.cc
|
| diff --git a/cc/trees/layer_tree_host_unittest_occlusion.cc b/cc/trees/layer_tree_host_unittest_occlusion.cc
|
| deleted file mode 100644
|
| index 9974ae4066b440c171f747d1df22d005a3cb67be..0000000000000000000000000000000000000000
|
| --- a/cc/trees/layer_tree_host_unittest_occlusion.cc
|
| +++ /dev/null
|
| @@ -1,270 +0,0 @@
|
| -// Copyright 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "cc/trees/layer_tree_host.h"
|
| -
|
| -#include "cc/layers/layer.h"
|
| -#include "cc/layers/picture_layer.h"
|
| -#include "cc/test/fake_content_layer_client.h"
|
| -#include "cc/test/layer_tree_test.h"
|
| -#include "cc/trees/layer_tree_impl.h"
|
| -
|
| -namespace cc {
|
| -namespace {
|
| -
|
| -#define EXPECT_OCCLUSION_EQ(expected, actual) \
|
| - EXPECT_TRUE(expected.IsEqual(actual)) \
|
| - << " Expected: " << expected.ToString() << std::endl \
|
| - << " Actual: " << actual.ToString();
|
| -
|
| -class LayerTreeHostOcclusionTest : public LayerTreeTest {
|
| - protected:
|
| - void InitializeSettings(LayerTreeSettings* settings) override {
|
| - settings->minimum_occlusion_tracking_size = gfx::Size();
|
| - }
|
| -};
|
| -
|
| -// Verify occlusion is set on the layer draw properties.
|
| -class LayerTreeHostOcclusionTestDrawPropertiesOnLayer
|
| - : public LayerTreeHostOcclusionTest {
|
| - public:
|
| - void SetupTree() override {
|
| - scoped_refptr<Layer> root = Layer::Create();
|
| - root->SetBounds(gfx::Size(100, 100));
|
| - root->SetIsDrawable(true);
|
| -
|
| - scoped_refptr<Layer> child = Layer::Create();
|
| - child->SetBounds(gfx::Size(50, 60));
|
| - child->SetPosition(gfx::PointF(10.f, 5.5f));
|
| - child->SetContentsOpaque(true);
|
| - child->SetIsDrawable(true);
|
| - root->AddChild(child);
|
| -
|
| - layer_tree_host()->SetRootLayer(root);
|
| - LayerTreeTest::SetupTree();
|
| - }
|
| -
|
| - void BeginTest() override { PostSetNeedsCommitToMainThread(); }
|
| -
|
| - void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
|
| - LayerImpl* root = impl->active_tree()->root_layer();
|
| - LayerImpl* child = root->children()[0];
|
| -
|
| - // Verify the draw properties are valid.
|
| - EXPECT_TRUE(root->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_TRUE(child->IsDrawnRenderSurfaceLayerListMember());
|
| -
|
| - EXPECT_OCCLUSION_EQ(
|
| - Occlusion(child->draw_transform(), SimpleEnclosedRegion(),
|
| - SimpleEnclosedRegion()),
|
| - child->draw_properties().occlusion_in_content_space);
|
| - EXPECT_OCCLUSION_EQ(
|
| - Occlusion(root->draw_transform(), SimpleEnclosedRegion(),
|
| - SimpleEnclosedRegion(gfx::Rect(10, 6, 50, 59))),
|
| - root->draw_properties().occlusion_in_content_space);
|
| - EndTest();
|
| - }
|
| -
|
| - void AfterTest() override {}
|
| -};
|
| -
|
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostOcclusionTestDrawPropertiesOnLayer);
|
| -
|
| -// Verify occlusion is set on the render surfaces.
|
| -class LayerTreeHostOcclusionTestDrawPropertiesOnSurface
|
| - : public LayerTreeHostOcclusionTest {
|
| - public:
|
| - void SetupTree() override {
|
| - scoped_refptr<Layer> root = Layer::Create();
|
| - root->SetBounds(gfx::Size(100, 100));
|
| - root->SetIsDrawable(true);
|
| -
|
| - scoped_refptr<Layer> child = Layer::Create();
|
| - child->SetBounds(gfx::Size(1, 1));
|
| - child->SetPosition(gfx::PointF(10.f, 5.5f));
|
| - child->SetIsDrawable(true);
|
| - child->SetForceRenderSurface(true);
|
| - root->AddChild(child);
|
| -
|
| - scoped_refptr<Layer> child2 = Layer::Create();
|
| - child2->SetBounds(gfx::Size(10, 12));
|
| - child2->SetPosition(gfx::PointF(13.f, 8.5f));
|
| - child2->SetContentsOpaque(true);
|
| - child2->SetIsDrawable(true);
|
| - root->AddChild(child2);
|
| -
|
| - layer_tree_host()->SetRootLayer(root);
|
| - LayerTreeTest::SetupTree();
|
| - }
|
| -
|
| - void BeginTest() override { PostSetNeedsCommitToMainThread(); }
|
| -
|
| - void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
|
| - LayerImpl* root = impl->active_tree()->root_layer();
|
| - LayerImpl* child = root->children()[0];
|
| - RenderSurfaceImpl* surface = child->render_surface();
|
| -
|
| - // Verify the draw properties are valid.
|
| - EXPECT_TRUE(root->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_TRUE(child->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_EQ(child, child->render_target());
|
| -
|
| - EXPECT_OCCLUSION_EQ(
|
| - Occlusion(surface->draw_transform(), SimpleEnclosedRegion(),
|
| - SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))),
|
| - surface->occlusion_in_content_space());
|
| - EndTest();
|
| - }
|
| -
|
| - void AfterTest() override {}
|
| -};
|
| -
|
| -SINGLE_AND_MULTI_THREAD_TEST_F(
|
| - LayerTreeHostOcclusionTestDrawPropertiesOnSurface);
|
| -
|
| -// Verify occlusion is set on mask layers.
|
| -class LayerTreeHostOcclusionTestDrawPropertiesOnMask
|
| - : public LayerTreeHostOcclusionTest {
|
| - public:
|
| - void SetupTree() override {
|
| - scoped_refptr<Layer> root = Layer::Create();
|
| - root->SetBounds(gfx::Size(100, 100));
|
| - root->SetIsDrawable(true);
|
| -
|
| - scoped_refptr<Layer> child = Layer::Create();
|
| - child->SetBounds(gfx::Size(30, 40));
|
| - child->SetPosition(gfx::PointF(10.f, 5.5f));
|
| - child->SetIsDrawable(true);
|
| - root->AddChild(child);
|
| -
|
| - scoped_refptr<Layer> make_surface_bigger = Layer::Create();
|
| - make_surface_bigger->SetBounds(gfx::Size(100, 100));
|
| - make_surface_bigger->SetPosition(gfx::PointF(-10.f, -15.f));
|
| - make_surface_bigger->SetIsDrawable(true);
|
| - child->AddChild(make_surface_bigger);
|
| -
|
| - scoped_refptr<Layer> mask = PictureLayer::Create(&client_);
|
| - mask->SetBounds(gfx::Size(30, 40));
|
| - mask->SetIsDrawable(true);
|
| - child->SetMaskLayer(mask.get());
|
| -
|
| - scoped_refptr<Layer> child2 = Layer::Create();
|
| - child2->SetBounds(gfx::Size(10, 12));
|
| - child2->SetPosition(gfx::PointF(13.f, 8.5f));
|
| - child2->SetContentsOpaque(true);
|
| - child2->SetIsDrawable(true);
|
| - root->AddChild(child2);
|
| -
|
| - layer_tree_host()->SetRootLayer(root);
|
| - LayerTreeTest::SetupTree();
|
| - }
|
| -
|
| - void BeginTest() override { PostSetNeedsCommitToMainThread(); }
|
| -
|
| - void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
|
| - LayerImpl* root = impl->active_tree()->root_layer();
|
| - LayerImpl* child = root->children()[0];
|
| - RenderSurfaceImpl* surface = child->render_surface();
|
| - LayerImpl* mask = child->mask_layer();
|
| -
|
| - // Verify the draw properties are valid.
|
| - EXPECT_TRUE(root->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_TRUE(child->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_EQ(child, child->render_target());
|
| -
|
| - gfx::Transform transform = surface->draw_transform();
|
| - transform.PreconcatTransform(child->draw_transform());
|
| -
|
| - EXPECT_OCCLUSION_EQ(
|
| - Occlusion(transform, SimpleEnclosedRegion(),
|
| - SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))),
|
| - mask->draw_properties().occlusion_in_content_space);
|
| - EndTest();
|
| - }
|
| -
|
| - void AfterTest() override {}
|
| -
|
| - FakeContentLayerClient client_;
|
| -};
|
| -
|
| -SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostOcclusionTestDrawPropertiesOnMask);
|
| -
|
| -// Verify occlusion is set to empty inside the subtree of a replica. This is
|
| -// done because the tile system does not know about replicas, and so would not
|
| -// know that something is unoccluded on the replica even though it's occluded on
|
| -// the original.
|
| -class LayerTreeHostOcclusionTestDrawPropertiesInsideReplica
|
| - : public LayerTreeHostOcclusionTest {
|
| - public:
|
| - void SetupTree() override {
|
| - scoped_refptr<Layer> root = Layer::Create();
|
| - root->SetBounds(gfx::Size(100, 100));
|
| - root->SetIsDrawable(true);
|
| -
|
| - scoped_refptr<Layer> child = Layer::Create();
|
| - child->SetBounds(gfx::Size(1, 1));
|
| - child->SetPosition(gfx::PointF(10.f, 5.5f));
|
| - child->SetIsDrawable(true);
|
| - child->SetForceRenderSurface(true);
|
| - root->AddChild(child);
|
| -
|
| - scoped_refptr<Layer> replica = Layer::Create();
|
| - gfx::Transform translate;
|
| - translate.Translate(20.f, 4.f);
|
| - replica->SetTransform(translate);
|
| - child->SetReplicaLayer(replica.get());
|
| -
|
| - scoped_refptr<Layer> mask = PictureLayer::Create(&client_);
|
| - mask->SetBounds(gfx::Size(30, 40));
|
| - mask->SetIsDrawable(true);
|
| - child->SetMaskLayer(mask.get());
|
| -
|
| - scoped_refptr<Layer> child2 = Layer::Create();
|
| - child2->SetBounds(gfx::Size(10, 12));
|
| - child2->SetPosition(gfx::PointF(13.f, 8.5f));
|
| - child2->SetContentsOpaque(true);
|
| - child2->SetIsDrawable(true);
|
| - root->AddChild(child2);
|
| -
|
| - layer_tree_host()->SetRootLayer(root);
|
| - LayerTreeTest::SetupTree();
|
| - }
|
| -
|
| - void BeginTest() override { PostSetNeedsCommitToMainThread(); }
|
| -
|
| - void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
|
| - LayerImpl* root = impl->active_tree()->root_layer();
|
| - LayerImpl* child = root->children()[0];
|
| - RenderSurfaceImpl* surface = child->render_surface();
|
| - LayerImpl* mask = child->mask_layer();
|
| -
|
| - // Verify the draw properties are valid.
|
| - EXPECT_TRUE(root->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_TRUE(child->IsDrawnRenderSurfaceLayerListMember());
|
| - EXPECT_EQ(child, child->render_target());
|
| -
|
| - // No occlusion from on child, which is part of the replica.
|
| - EXPECT_OCCLUSION_EQ(Occlusion(),
|
| - child->draw_properties().occlusion_in_content_space);
|
| - // Occlusion on the surface is okay.
|
| - EXPECT_OCCLUSION_EQ(
|
| - Occlusion(surface->draw_transform(), SimpleEnclosedRegion(),
|
| - SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))),
|
| - surface->occlusion_in_content_space());
|
| - // No occlusion on the replica'd mask.
|
| - EXPECT_OCCLUSION_EQ(Occlusion(),
|
| - mask->draw_properties().occlusion_in_content_space);
|
| - EndTest();
|
| - }
|
| -
|
| - void AfterTest() override {}
|
| -
|
| - FakeContentLayerClient client_;
|
| -};
|
| -
|
| -SINGLE_AND_MULTI_THREAD_TEST_F(
|
| - LayerTreeHostOcclusionTestDrawPropertiesInsideReplica);
|
| -
|
| -} // namespace
|
| -} // namespace cc
|
|
|