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 3805f1861dd959b119afd7cacf749c6db1eaad51..880f34710674238ec19436f69b2c82ad9541ea4b 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 { |
@@ -45,6 +43,9 @@ class DelegatedRendererLayerTestSimple : public DelegatedRendererLayerTest { |
root_layer_ = SolidColorLayer::Create(); |
layer_before_ = SolidColorLayer::Create(); |
delegated_renderer_layer_ = FakeDelegatedRendererLayer::Create(provider_); |
+ queue_ = make_scoped_ptr(new ResourceUpdateQueue); |
+ host_->SetRootLayer(root_layer_); |
+ host_->InitializeForTesting(scoped_ptr<Proxy>(new FakeProxy)); |
} |
protected: |
@@ -53,8 +54,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_); |
@@ -70,6 +79,53 @@ TEST_F(DelegatedRendererLayerTestSimple, DelegatedManyDescendants) { |
EXPECT_EQ(1000, delegated_renderer_layer_->NumDescendantsThatDrawContent()); |
EXPECT_EQ(1001, layer_before_->NumDescendantsThatDrawContent()); |
EXPECT_EQ(1002, root_layer_->NumDescendantsThatDrawContent()); |
+ CalcDrawProps(host_.get()); |
danakj
2014/08/26 18:06:12
if there's no expects after this, why do it?
awoloszyn
2014/08/28 19:31:42
Done.
|
+} |
+ |
+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 |