OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 1239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1250 IntPoint m_initialScroll; | 1250 IntPoint m_initialScroll; |
1251 IntSize m_scrollAmount; | 1251 IntSize m_scrollAmount; |
1252 int m_scrolls; | 1252 int m_scrolls; |
1253 }; | 1253 }; |
1254 | 1254 |
1255 TEST_F(CCLayerTreeHostTestScrollMultipleRedraw, DISABLED_runMultiThread) | 1255 TEST_F(CCLayerTreeHostTestScrollMultipleRedraw, DISABLED_runMultiThread) |
1256 { | 1256 { |
1257 runTestThreaded(); | 1257 runTestThreaded(); |
1258 } | 1258 } |
1259 | 1259 |
| 1260 // This test verifies that properties on the layer tree host are commited to the
impl side. |
| 1261 class CCLayerTreeHostTestCommit : public CCLayerTreeHostTest { |
| 1262 public: |
| 1263 |
| 1264 CCLayerTreeHostTestCommit() { } |
| 1265 |
| 1266 virtual void beginTest() |
| 1267 { |
| 1268 m_layerTreeHost->setViewportSize(IntSize(20, 20)); |
| 1269 m_layerTreeHost->setBackgroundColor(Color::gray); |
| 1270 m_layerTreeHost->setPageScaleFactorAndLimits(5, 5, 5); |
| 1271 |
| 1272 postSetNeedsCommitToMainThread(); |
| 1273 } |
| 1274 |
| 1275 virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) |
| 1276 { |
| 1277 EXPECT_EQ(IntSize(20, 20), impl->viewportSize()); |
| 1278 EXPECT_EQ(Color::gray, impl->backgroundColor()); |
| 1279 EXPECT_EQ(5, impl->pageScale()); |
| 1280 |
| 1281 endTest(); |
| 1282 } |
| 1283 |
| 1284 virtual void afterTest() { } |
| 1285 }; |
| 1286 |
| 1287 TEST_F(CCLayerTreeHostTestCommit, runTest) |
| 1288 { |
| 1289 runTest(true); |
| 1290 } |
| 1291 |
1260 // Verifies that startPageScaleAnimation events propagate correctly from CCLayer
TreeHost to | 1292 // Verifies that startPageScaleAnimation events propagate correctly from CCLayer
TreeHost to |
1261 // CCLayerTreeHostImpl in the MT compositor. | 1293 // CCLayerTreeHostImpl in the MT compositor. |
1262 class CCLayerTreeHostTestStartPageScaleAnimation : public CCLayerTreeHostTest { | 1294 class CCLayerTreeHostTestStartPageScaleAnimation : public CCLayerTreeHostTest { |
1263 public: | 1295 public: |
1264 | 1296 |
1265 CCLayerTreeHostTestStartPageScaleAnimation() | 1297 CCLayerTreeHostTestStartPageScaleAnimation() |
1266 : m_animationRequested(false) | 1298 : m_animationRequested(false) |
1267 { | 1299 { |
1268 } | 1300 } |
1269 | 1301 |
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1754 public: | 1786 public: |
1755 static PassRefPtr<TestLayerChromium> create() { return adoptRef(new TestLaye
rChromium()); } | 1787 static PassRefPtr<TestLayerChromium> create() { return adoptRef(new TestLaye
rChromium()); } |
1756 | 1788 |
1757 virtual void paintContentsIfDirty(const CCOcclusionTracker* occlusion) | 1789 virtual void paintContentsIfDirty(const CCOcclusionTracker* occlusion) |
1758 { | 1790 { |
1759 m_occludedScreenSpace = occlusion ? occlusion->currentOcclusionInScreenS
pace() : Region(); | 1791 m_occludedScreenSpace = occlusion ? occlusion->currentOcclusionInScreenS
pace() : Region(); |
1760 } | 1792 } |
1761 | 1793 |
1762 virtual bool drawsContent() const { return true; } | 1794 virtual bool drawsContent() const { return true; } |
1763 | 1795 |
1764 virtual Region visibleContentOpaqueRegion() const { return intersection(m_op
aqueContentsRect, visibleLayerRect()); } | |
1765 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) { m_opaqueCont
entsRect = opaqueContentsRect; } | |
1766 | |
1767 const Region& occludedScreenSpace() const { return m_occludedScreenSpace; } | 1796 const Region& occludedScreenSpace() const { return m_occludedScreenSpace; } |
1768 void clearOccludedScreenSpace() { m_occludedScreenSpace = Region(); } | 1797 void clearOccludedScreenSpace() { m_occludedScreenSpace = Region(); } |
1769 | 1798 |
1770 private: | 1799 private: |
1771 TestLayerChromium() : LayerChromium() { } | 1800 TestLayerChromium() : LayerChromium() { } |
1772 | 1801 |
1773 Region m_occludedScreenSpace; | 1802 Region m_occludedScreenSpace; |
1774 IntRect m_opaqueContentsRect; | |
1775 }; | 1803 }; |
1776 | 1804 |
1777 static void setLayerPropertiesForTesting(TestLayerChromium* layer, LayerChromium
* parent, const TransformationMatrix& transform, const FloatPoint& anchor, const
FloatPoint& position, const IntSize& bounds, bool opaque) | 1805 static void setLayerPropertiesForTesting(TestLayerChromium* layer, LayerChromium
* parent, const TransformationMatrix& transform, const FloatPoint& anchor, const
FloatPoint& position, const IntSize& bounds, bool opaque) |
1778 { | 1806 { |
1779 layer->removeAllChildren(); | 1807 layer->removeAllChildren(); |
1780 if (parent) | 1808 if (parent) |
1781 parent->addChild(layer); | 1809 parent->addChild(layer); |
1782 layer->setTransform(transform); | 1810 layer->setTransform(transform); |
1783 layer->setAnchorPoint(anchor); | 1811 layer->setAnchorPoint(anchor); |
1784 layer->setPosition(position); | 1812 layer->setPosition(position); |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1981 endTest(); | 2009 endTest(); |
1982 } | 2010 } |
1983 | 2011 |
1984 virtual void afterTest() | 2012 virtual void afterTest() |
1985 { | 2013 { |
1986 } | 2014 } |
1987 }; | 2015 }; |
1988 | 2016 |
1989 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLayerOcclusion) | 2017 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLayerOcclusion) |
1990 | 2018 |
1991 class CCLayerTreeHostTestContentLayerOcclusion : public CCLayerTreeHostTest { | |
1992 public: | |
1993 CCLayerTreeHostTestContentLayerOcclusion() { } | |
1994 | |
1995 virtual void beginTest() | |
1996 { | |
1997 RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create(); | |
1998 RefPtr<TestLayerChromium> child = TestLayerChromium::create(); | |
1999 | |
2000 TransformationMatrix identityMatrix; | |
2001 setLayerPropertiesForTesting(rootLayer.get(), 0, identityMatrix, FloatPo
int(0, 0), FloatPoint(0, 0), IntSize(100, 100), true); | |
2002 setLayerPropertiesForTesting(child.get(), rootLayer.get(), identityMatri
x, FloatPoint(0, 0), FloatPoint(30, 30), IntSize(50, 50), false); | |
2003 | |
2004 child->setOpaqueContentsRect(IntRect(10, 10, 20, 20)); | |
2005 | |
2006 m_layerTreeHost->setRootLayer(rootLayer); | |
2007 m_layerTreeHost->setViewportSize(rootLayer->bounds()); | |
2008 m_layerTreeHost->updateLayers(); | |
2009 m_layerTreeHost->commitComplete(); | |
2010 | |
2011 EXPECT_EQ_RECT(IntRect(), child->occludedScreenSpace().bounds()); | |
2012 EXPECT_EQ(0u, child->occludedScreenSpace().rects().size()); | |
2013 | |
2014 EXPECT_EQ_RECT(IntRect(40, 40, 20, 20), rootLayer->occludedScreenSpace()
.bounds()); | |
2015 EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); | |
2016 | |
2017 // Kill the layerTreeHost immediately. | |
2018 m_layerTreeHost->setRootLayer(0); | |
2019 m_layerTreeHost.clear(); | |
2020 | |
2021 endTest(); | |
2022 } | |
2023 | |
2024 virtual void afterTest() | |
2025 { | |
2026 } | |
2027 }; | |
2028 | |
2029 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestContentLayerOcclusion) | |
2030 | |
2031 class CCLayerTreeHostTestLayerOcclusionWithFilters : public CCLayerTreeHostTest
{ | 2019 class CCLayerTreeHostTestLayerOcclusionWithFilters : public CCLayerTreeHostTest
{ |
2032 public: | 2020 public: |
2033 CCLayerTreeHostTestLayerOcclusionWithFilters() { } | 2021 CCLayerTreeHostTestLayerOcclusionWithFilters() { } |
2034 | 2022 |
2035 virtual void beginTest() | 2023 virtual void beginTest() |
2036 { | 2024 { |
2037 RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create(); | 2025 RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create(); |
2038 RefPtr<TestLayerChromium> child = TestLayerChromium::create(); | 2026 RefPtr<TestLayerChromium> child = TestLayerChromium::create(); |
2039 RefPtr<TestLayerChromium> child2 = TestLayerChromium::create(); | 2027 RefPtr<TestLayerChromium> child2 = TestLayerChromium::create(); |
2040 RefPtr<TestLayerChromium> grandChild = TestLayerChromium::create(); | 2028 RefPtr<TestLayerChromium> grandChild = TestLayerChromium::create(); |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2289 private: | 2277 private: |
2290 FloatSize m_scrollAmount; | 2278 FloatSize m_scrollAmount; |
2291 }; | 2279 }; |
2292 | 2280 |
2293 TEST_F(CCLayerTreeHostTestFractionalScroll, runMultiThread) | 2281 TEST_F(CCLayerTreeHostTestFractionalScroll, runMultiThread) |
2294 { | 2282 { |
2295 runTestThreaded(); | 2283 runTestThreaded(); |
2296 } | 2284 } |
2297 | 2285 |
2298 } // namespace | 2286 } // namespace |
OLD | NEW |