Index: cc/layers/delegated_renderer_layer_unittest.cc |
diff --git a/cc/layers/delegated_renderer_layer_unittest.cc b/cc/layers/delegated_renderer_layer_unittest.cc |
index ce7dab013e54f6e2e83b92696cad1e1ca94a6721..afad3aabe0291afe572deca47ef55b62cbe5fcb9 100644 |
--- a/cc/layers/delegated_renderer_layer_unittest.cc |
+++ b/cc/layers/delegated_renderer_layer_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "cc/layers/delegated_frame_resource_collection.h" |
#include "cc/layers/solid_color_layer.h" |
#include "cc/output/delegated_frame_data.h" |
+#include "cc/resources/resource_update_queue.h" |
#include "cc/test/fake_delegated_renderer_layer.h" |
#include "cc/test/fake_layer_tree_host.h" |
#include "cc/test/fake_proxy.h" |
@@ -19,17 +20,14 @@ namespace { |
class DelegatedRendererLayerTest : public testing::Test { |
public: |
DelegatedRendererLayerTest() : proxy_() { |
- LayerTreeSettings settings; |
- settings.minimum_occlusion_tracking_size = gfx::Size(); |
- |
- host_impl_ = FakeLayerTreeHost::Create(settings); |
- host_impl_->SetViewportSize(gfx::Size(10, 10)); |
+ host_ = FakeLayerTreeHost::Create(); |
+ host_->SetViewportSize(gfx::Size(10, 10)); |
} |
protected: |
FakeProxy proxy_; |
TestSharedBitmapManager shared_bitmap_manager_; |
- scoped_ptr<LayerTreeHost> host_impl_; |
+ scoped_ptr<FakeLayerTreeHost> host_; |
}; |
class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
@@ -46,6 +44,9 @@ class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
layer_before_ = SolidColorLayer::Create(); |
delegated_renderer_layer_ = |
FakeDelegatedRendererLayer::Create(provider_.get()); |
+ queue_ = make_scoped_ptr(new ResourceUpdateQueue); |
+ host_->SetRootLayer(root_layer_); |
+ host_->InitializeForTesting(scoped_ptr<Proxy>(new FakeProxy)); |
} |
protected: |
@@ -54,8 +55,16 @@ class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
scoped_refptr<DelegatedRendererLayer> delegated_renderer_layer_; |
scoped_refptr<DelegatedFrameResourceCollection> resources_; |
scoped_refptr<DelegatedFrameProvider> provider_; |
+ scoped_ptr<ResourceUpdateQueue> queue_; |
}; |
+static void CalcDrawProps(LayerTreeHost* host) { |
+ RenderSurfaceLayerList render_surface_layer_list; |
+ LayerTreeHostCommon::CalcDrawPropsMainInputsForTesting inputs( |
+ host->root_layer(), gfx::Size(500, 500), &render_surface_layer_list); |
+ LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
+} |
+ |
TEST_F(DelegatedRendererLayerTestSimple, DelegatedManyDescendants) { |
EXPECT_EQ(0, root_layer_->NumDescendantsThatDrawContent()); |
root_layer_->AddChild(layer_before_); |
@@ -73,5 +82,51 @@ TEST_F(DelegatedRendererLayerTestSimple, DelegatedManyDescendants) { |
EXPECT_EQ(1002, root_layer_->NumDescendantsThatDrawContent()); |
} |
+TEST_F(DelegatedRendererLayerTestSimple, DoesNotOwnARenderSurface) { |
+ root_layer_->AddChild(delegated_renderer_layer_); |
+ root_layer_->SetIsDrawable(true); |
+ delegated_renderer_layer_->AddChild(layer_before_); |
+ delegated_renderer_layer_->SetIsDrawable(true); |
+ layer_before_->SetIsDrawable(true); |
+ CalcDrawProps(host_.get()); |
+ |
+ // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it |
+ // has no need to be a RenderSurface for the quads it carries. |
+ EXPECT_FALSE(delegated_renderer_layer_->render_surface()); |
+} |
+ |
+TEST_F(DelegatedRendererLayerTestSimple, DoesOwnARenderSurfaceForOpacity) { |
+ delegated_renderer_layer_->SetOpacity(0.5f); |
+ root_layer_->AddChild(delegated_renderer_layer_); |
+ root_layer_->SetIsDrawable(true); |
+ delegated_renderer_layer_->AddChild(layer_before_); |
+ delegated_renderer_layer_->SetIsDrawable(true); |
+ layer_before_->SetIsDrawable(true); |
+ CalcDrawProps(host_.get()); |
+ |
+ // This test case has quads from multiple layers in the delegated renderer, so |
+ // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
+ // render surface. |
+ EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
+} |
+ |
+TEST_F(DelegatedRendererLayerTestSimple, DoesOwnARenderSurfaceForTransform) { |
+ gfx::Transform rotation; |
+ rotation.RotateAboutZAxis(30.0); |
+ delegated_renderer_layer_->SetTransform(rotation); |
+ root_layer_->AddChild(delegated_renderer_layer_); |
+ root_layer_->SetIsDrawable(true); |
+ delegated_renderer_layer_->AddChild(layer_before_); |
+ delegated_renderer_layer_->SetIsDrawable(true); |
+ layer_before_->SetIsDrawable(true); |
+ |
+ CalcDrawProps(host_.get()); |
+ |
+ // This test case has quads from multiple layers in the delegated renderer, so |
+ // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
+ // render surface. |
+ EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
+} |
+ |
} // namespace |
} // namespace cc |