summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-28 22:18:13 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-28 22:18:13 +0000
commit664b93c14564c47d4c99cee4a6d14d2386ccbf3f (patch)
treeb014eb6e6aea56eefd0073752a9e70e80a4e400f /cc
parente9c804d5e5ec760844574a9ab6781e4cf7f7cee0 (diff)
downloadchromium_src-664b93c14564c47d4c99cee4a6d14d2386ccbf3f.zip
chromium_src-664b93c14564c47d4c99cee4a6d14d2386ccbf3f.tar.gz
chromium_src-664b93c14564c47d4c99cee4a6d14d2386ccbf3f.tar.bz2
cc: Add a test to verify DelegatedRendererLayer owns a RenderSurface when needed.
In the test, the layer is holding quads from a tree that consisted of multiple layers, and the quads overlap. When the DelegatedRendererLayer has opacity 1, it does not need to own a surface here. But when it has opacity < 1, then it does. R=piman NOTRY=true Review URL: https://chromiumcodereview.appspot.com/11421089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170070 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/delegated_renderer_layer_impl_unittest.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/cc/delegated_renderer_layer_impl_unittest.cc b/cc/delegated_renderer_layer_impl_unittest.cc
index 4fb4864..d37ef5b 100644
--- a/cc/delegated_renderer_layer_impl_unittest.cc
+++ b/cc/delegated_renderer_layer_impl_unittest.cc
@@ -272,6 +272,34 @@ TEST_F(DelegatedRendererLayerImplTestSimple, QuadsFromRootRenderPassAreModifiedF
EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[1]->quad_list[0]->quadTransform());
}
+TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface)
+{
+ LayerTreeHostImpl::FrameData frame;
+ EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
+ m_hostImpl->drawLayers(frame);
+ m_hostImpl->didDrawAllLayers(frame);
+
+ // 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(m_delegatedRendererLayerPtr->renderSurface());
+}
+
+TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurface)
+{
+ m_delegatedRendererLayerPtr->setOpacity(0.5f);
+
+ LayerTreeHostImpl::FrameData frame;
+ EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
+ m_hostImpl->drawLayers(frame);
+ m_hostImpl->didDrawAllLayers(frame);
+
+ // 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(m_delegatedRendererLayerPtr->renderSurface());
+
+}
+
class DelegatedRendererLayerImplTestOwnSurface : public DelegatedRendererLayerImplTestSimple {
public:
DelegatedRendererLayerImplTestOwnSurface()