OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "CCOcclusionTracker.h" | 7 #include "CCOcclusionTracker.h" |
8 | 8 |
9 #include "CCAnimationTestCommon.h" | 9 #include "CCAnimationTestCommon.h" |
10 #include "CCGeometryTestUtils.h" | 10 #include "CCGeometryTestUtils.h" |
11 #include "CCLayerAnimationController.h" | 11 #include "CCLayerAnimationController.h" |
12 #include "CCLayerImpl.h" | |
13 #include "CCLayerTreeHostCommon.h" | 12 #include "CCLayerTreeHostCommon.h" |
14 #include "CCMathUtil.h" | 13 #include "CCMathUtil.h" |
15 #include "CCOcclusionTrackerTestCommon.h" | 14 #include "CCOcclusionTrackerTestCommon.h" |
16 #include "CCOverdrawMetrics.h" | 15 #include "CCOverdrawMetrics.h" |
17 #include "CCSingleThreadProxy.h" | 16 #include "CCSingleThreadProxy.h" |
18 #include "LayerChromium.h" | 17 #include "CCTiledLayerImpl.h" |
19 #include "Region.h" | 18 #include "Region.h" |
| 19 #include "TiledLayerChromium.h" |
20 #include "testing/gmock/include/gmock/gmock.h" | 20 #include "testing/gmock/include/gmock/gmock.h" |
21 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
22 #include <public/WebFilterOperation.h> | 22 #include <public/WebFilterOperation.h> |
23 #include <public/WebFilterOperations.h> | 23 #include <public/WebFilterOperations.h> |
24 #include <public/WebTransformationMatrix.h> | 24 #include <public/WebTransformationMatrix.h> |
25 | 25 |
26 using namespace cc; | 26 using namespace cc; |
27 using namespace WebKit; | 27 using namespace WebKit; |
28 using namespace WebKitTests; | 28 using namespace WebKitTests; |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 class TestContentLayerChromium : public LayerChromium { | 32 class TestContentLayerChromium : public TiledLayerChromium { |
33 public: | 33 public: |
34 TestContentLayerChromium() | 34 TestContentLayerChromium() |
35 : LayerChromium() | 35 : TiledLayerChromium() |
36 , m_overrideOpaqueContentsRect(false) | 36 , m_overrideOpaqueContentsRect(false) |
37 { | 37 { |
38 } | 38 } |
39 | 39 |
40 virtual bool drawsContent() const OVERRIDE { return true; } | 40 virtual bool drawsContent() const OVERRIDE { return true; } |
41 virtual Region visibleContentOpaqueRegion() const OVERRIDE | 41 virtual Region visibleContentOpaqueRegion() const OVERRIDE |
42 { | 42 { |
43 if (m_overrideOpaqueContentsRect) | 43 if (m_overrideOpaqueContentsRect) |
44 return intersection(m_opaqueContentsRect, visibleContentRect()); | 44 return intersection(m_opaqueContentsRect, visibleContentRect()); |
45 return LayerChromium::visibleContentOpaqueRegion(); | 45 return LayerChromium::visibleContentOpaqueRegion(); |
46 } | 46 } |
47 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) | 47 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) |
48 { | 48 { |
49 m_overrideOpaqueContentsRect = true; | 49 m_overrideOpaqueContentsRect = true; |
50 m_opaqueContentsRect = opaqueContentsRect; | 50 m_opaqueContentsRect = opaqueContentsRect; |
51 } | 51 } |
52 | 52 |
| 53 virtual LayerTextureUpdater* textureUpdater() const OVERRIDE { return 0; } |
| 54 virtual void createTextureUpdaterIfNeeded() OVERRIDE { } |
| 55 |
53 private: | 56 private: |
54 bool m_overrideOpaqueContentsRect; | 57 bool m_overrideOpaqueContentsRect; |
55 IntRect m_opaqueContentsRect; | 58 IntRect m_opaqueContentsRect; |
56 }; | 59 }; |
57 | 60 |
58 class TestContentLayerImpl : public CCLayerImpl { | 61 class TestContentLayerImpl : public CCTiledLayerImpl { |
59 public: | 62 public: |
60 TestContentLayerImpl(int id) | 63 TestContentLayerImpl(int id) |
61 : CCLayerImpl(id) | 64 : CCTiledLayerImpl(id) |
62 , m_overrideOpaqueContentsRect(false) | 65 , m_overrideOpaqueContentsRect(false) |
63 { | 66 { |
64 setDrawsContent(true); | 67 setDrawsContent(true); |
65 } | 68 } |
66 | 69 |
67 virtual Region visibleContentOpaqueRegion() const OVERRIDE | 70 virtual Region visibleContentOpaqueRegion() const OVERRIDE |
68 { | 71 { |
69 if (m_overrideOpaqueContentsRect) | 72 if (m_overrideOpaqueContentsRect) |
70 return intersection(m_opaqueContentsRect, visibleContentRect()); | 73 return intersection(m_opaqueContentsRect, visibleContentRect()); |
71 return CCLayerImpl::visibleContentOpaqueRegion(); | 74 return CCLayerImpl::visibleContentOpaqueRegion(); |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 } | 236 } |
234 | 237 |
235 void calcDrawEtc(TestContentLayerImpl* root) | 238 void calcDrawEtc(TestContentLayerImpl* root) |
236 { | 239 { |
237 ASSERT(root == m_root.get()); | 240 ASSERT(root == m_root.get()); |
238 int dummyMaxTextureSize = 512; | 241 int dummyMaxTextureSize = 512; |
239 CCLayerSorter layerSorter; | 242 CCLayerSorter layerSorter; |
240 | 243 |
241 ASSERT(!root->renderSurface()); | 244 ASSERT(!root->renderSurface()); |
242 | 245 |
243 CCLayerTreeHostCommon::calculateDrawTransforms(root, root->bounds(), 1,
&layerSorter, dummyMaxTextureSize, m_renderSurfaceLayerListImpl); | 246 CCLayerTreeHostCommon::calculateDrawTransforms(root, root->bounds(), 1,
1, &layerSorter, dummyMaxTextureSize, m_renderSurfaceLayerListImpl); |
244 CCLayerTreeHostCommon::calculateVisibleRects(m_renderSurfaceLayerListImp
l); | 247 CCLayerTreeHostCommon::calculateVisibleRects(m_renderSurfaceLayerListImp
l); |
245 | 248 |
246 m_layerIterator = m_layerIteratorBegin = Types::LayerIterator::begin(&m_
renderSurfaceLayerListImpl); | 249 m_layerIterator = m_layerIteratorBegin = Types::LayerIterator::begin(&m_
renderSurfaceLayerListImpl); |
247 } | 250 } |
248 | 251 |
249 void calcDrawEtc(TestContentLayerChromium* root) | 252 void calcDrawEtc(TestContentLayerChromium* root) |
250 { | 253 { |
251 ASSERT(root == m_root.get()); | 254 ASSERT(root == m_root.get()); |
252 int dummyMaxTextureSize = 512; | 255 int dummyMaxTextureSize = 512; |
253 | 256 |
254 ASSERT(!root->renderSurface()); | 257 ASSERT(!root->renderSurface()); |
255 | 258 |
256 CCLayerTreeHostCommon::calculateDrawTransforms(root, root->bounds(), 1,
dummyMaxTextureSize, m_renderSurfaceLayerListChromium); | 259 CCLayerTreeHostCommon::calculateDrawTransforms(root, root->bounds(), 1,
1, dummyMaxTextureSize, m_renderSurfaceLayerListChromium); |
257 CCLayerTreeHostCommon::calculateVisibleRects(m_renderSurfaceLayerListChr
omium); | 260 CCLayerTreeHostCommon::calculateVisibleRects(m_renderSurfaceLayerListChr
omium); |
258 | 261 |
259 m_layerIterator = m_layerIteratorBegin = Types::LayerIterator::begin(&m_
renderSurfaceLayerListChromium); | 262 m_layerIterator = m_layerIteratorBegin = Types::LayerIterator::begin(&m_
renderSurfaceLayerListChromium); |
260 } | 263 } |
261 | 264 |
262 void enterLayer(typename Types::LayerType* layer, typename Types::OcclusionT
rackerType& occlusion) | 265 void enterLayer(typename Types::LayerType* layer, typename Types::OcclusionT
rackerType& occlusion) |
263 { | 266 { |
264 ASSERT_EQ(layer, *m_layerIterator); | 267 ASSERT_EQ(layer, *m_layerIterator); |
265 ASSERT_TRUE(m_layerIterator.representsItself()); | 268 ASSERT_TRUE(m_layerIterator.representsItself()); |
266 occlusion.enterLayer(m_layerIterator); | 269 occlusion.enterLayer(m_layerIterator); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 }; \ | 398 }; \ |
396 TEST_F(ClassName##ImplThreadOpaquePaints, runTest) { runMyTest(); } | 399 TEST_F(ClassName##ImplThreadOpaquePaints, runTest) { runMyTest(); } |
397 | 400 |
398 #define ALL_CCOCCLUSIONTRACKER_TEST(ClassName) \ | 401 #define ALL_CCOCCLUSIONTRACKER_TEST(ClassName) \ |
399 RUN_TEST_MAIN_THREAD_OPAQUE_LAYERS(ClassName) \ | 402 RUN_TEST_MAIN_THREAD_OPAQUE_LAYERS(ClassName) \ |
400 RUN_TEST_MAIN_THREAD_OPAQUE_PAINTS(ClassName) \ | 403 RUN_TEST_MAIN_THREAD_OPAQUE_PAINTS(ClassName) \ |
401 RUN_TEST_IMPL_THREAD_OPAQUE_LAYERS(ClassName) \ | 404 RUN_TEST_IMPL_THREAD_OPAQUE_LAYERS(ClassName) \ |
402 RUN_TEST_IMPL_THREAD_OPAQUE_PAINTS(ClassName) | 405 RUN_TEST_IMPL_THREAD_OPAQUE_PAINTS(ClassName) |
403 | 406 |
404 #define MAIN_THREAD_TEST(ClassName) \ | 407 #define MAIN_THREAD_TEST(ClassName) \ |
405 RUN_TEST_MAIN_THREAD_OPAQUE_LAYERS(ClassName) | 408 RUN_TEST_MAIN_THREAD_OPAQUE_LAYERS(ClassName) \ |
| 409 RUN_TEST_MAIN_THREAD_OPAQUE_PAINTS(ClassName) |
406 | 410 |
407 #define IMPL_THREAD_TEST(ClassName) \ | 411 #define IMPL_THREAD_TEST(ClassName) \ |
408 RUN_TEST_IMPL_THREAD_OPAQUE_LAYERS(ClassName) | 412 RUN_TEST_IMPL_THREAD_OPAQUE_LAYERS(ClassName) \ |
| 413 RUN_TEST_IMPL_THREAD_OPAQUE_PAINTS(ClassName) |
409 | 414 |
410 #define MAIN_AND_IMPL_THREAD_TEST(ClassName) \ | 415 #define MAIN_AND_IMPL_THREAD_TEST(ClassName) \ |
411 RUN_TEST_MAIN_THREAD_OPAQUE_LAYERS(ClassName) \ | 416 RUN_TEST_MAIN_THREAD_OPAQUE_LAYERS(ClassName) \ |
412 RUN_TEST_IMPL_THREAD_OPAQUE_LAYERS(ClassName) | 417 RUN_TEST_MAIN_THREAD_OPAQUE_PAINTS(ClassName) \ |
| 418 RUN_TEST_IMPL_THREAD_OPAQUE_LAYERS(ClassName) \ |
| 419 RUN_TEST_IMPL_THREAD_OPAQUE_PAINTS(ClassName) |
413 | 420 |
414 template<class Types, bool opaqueLayers> | 421 template<class Types, bool opaqueLayers> |
415 class CCOcclusionTrackerTestIdentityTransforms : public CCOcclusionTrackerTest<T
ypes, opaqueLayers> { | 422 class CCOcclusionTrackerTestIdentityTransforms : public CCOcclusionTrackerTest<T
ypes, opaqueLayers> { |
416 protected: | 423 protected: |
417 void runMyTest() | 424 void runMyTest() |
418 { | 425 { |
419 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(100, 100)); | 426 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(100, 100)); |
420 typename Types::ContentLayerType* layer = this->createDrawingLayer(paren
t, this->identityMatrix, FloatPoint(30, 30), IntSize(500, 500), true); | 427 typename Types::ContentLayerType* layer = this->createDrawingLayer(paren
t, this->identityMatrix, FloatPoint(30, 30), IntSize(500, 500), true); |
421 this->calcDrawEtc(parent); | 428 this->calcDrawEtc(parent); |
422 | 429 |
(...skipping 1743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2166 void runMyTest() | 2173 void runMyTest() |
2167 { | 2174 { |
2168 WebTransformationMatrix surfaceTransform; | 2175 WebTransformationMatrix surfaceTransform; |
2169 surfaceTransform.translate(300, 300); | 2176 surfaceTransform.translate(300, 300); |
2170 surfaceTransform.scale(2); | 2177 surfaceTransform.scale(2); |
2171 surfaceTransform.translate(-150, -150); | 2178 surfaceTransform.translate(-150, -150); |
2172 | 2179 |
2173 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(500, 500)); | 2180 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(500, 500)); |
2174 typename Types::ContentLayerType* surface = this->createDrawingSurface(p
arent, surfaceTransform, FloatPoint(0, 0), IntSize(300, 300), false); | 2181 typename Types::ContentLayerType* surface = this->createDrawingSurface(p
arent, surfaceTransform, FloatPoint(0, 0), IntSize(300, 300), false); |
2175 typename Types::ContentLayerType* surface2 = this->createDrawingSurface(
parent, this->identityMatrix, FloatPoint(50, 50), IntSize(300, 300), false); | 2182 typename Types::ContentLayerType* surface2 = this->createDrawingSurface(
parent, this->identityMatrix, FloatPoint(50, 50), IntSize(300, 300), false); |
2176 surface->setOpaqueContentsRect(IntRect(0, 0, 200, 200)); | 2183 surface->setOpaqueContentsRect(IntRect(0, 0, 400, 400)); |
2177 surface2->setOpaqueContentsRect(IntRect(0, 0, 200, 200)); | 2184 surface2->setOpaqueContentsRect(IntRect(0, 0, 200, 200)); |
2178 this->calcDrawEtc(parent); | 2185 this->calcDrawEtc(parent); |
2179 | 2186 |
2180 TestCCOcclusionTrackerWithClip<typename Types::LayerType, typename Types
::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000)); | 2187 TestCCOcclusionTrackerWithClip<typename Types::LayerType, typename Types
::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000)); |
2181 | 2188 |
2182 this->visitLayer(surface2, occlusion); | 2189 this->visitLayer(surface2, occlusion); |
2183 this->visitContributingSurface(surface2, occlusion); | 2190 this->visitContributingSurface(surface2, occlusion); |
2184 | 2191 |
2185 EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInScreenSpa
ce().bounds()); | 2192 EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInScreenSpa
ce().bounds()); |
2186 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); | 2193 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); |
2187 EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInTargetSur
face().bounds()); | 2194 EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInTargetSur
face().bounds()); |
2188 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); | 2195 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); |
2189 | 2196 |
2190 // Clear any stored occlusion. | 2197 // Clear any stored occlusion. |
2191 occlusion.setOcclusionInScreenSpace(Region()); | 2198 occlusion.setOcclusionInScreenSpace(Region()); |
2192 occlusion.setOcclusionInTargetSurface(Region()); | 2199 occlusion.setOcclusionInTargetSurface(Region()); |
2193 | 2200 |
2194 this->visitLayer(surface, occlusion); | 2201 this->visitLayer(surface, occlusion); |
2195 this->visitContributingSurface(surface, occlusion); | 2202 this->visitContributingSurface(surface, occlusion); |
2196 | 2203 |
2197 EXPECT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInScreenSpace
().bounds()); | 2204 EXPECT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInScreenSpace
().bounds()); |
2198 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); | 2205 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); |
2199 EXPECT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInTargetSurfa
ce().bounds()); | 2206 EXPECT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInTargetSurfa
ce().bounds()); |
2200 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); | 2207 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); |
2201 } | 2208 } |
2202 }; | 2209 }; |
2203 | 2210 |
2204 MAIN_AND_IMPL_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesToPare
nt); | 2211 // Scale transforms require main thread+commit to get contentBounds right. |
| 2212 MAIN_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent); |
2205 | 2213 |
2206 template<class Types, bool opaqueLayers> | 2214 template<class Types, bool opaqueLayers> |
2207 class CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping : public CCOc
clusionTrackerTest<Types, opaqueLayers> { | 2215 class CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping : public CCOc
clusionTrackerTest<Types, opaqueLayers> { |
2208 protected: | 2216 protected: |
2209 void runMyTest() | 2217 void runMyTest() |
2210 { | 2218 { |
2211 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(300, 300)); | 2219 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(300, 300)); |
2212 parent->setMasksToBounds(true); | 2220 parent->setMasksToBounds(true); |
2213 typename Types::ContentLayerType* surface = this->createDrawingSurface(p
arent, this->identityMatrix, FloatPoint(0, 0), IntSize(500, 300), false); | 2221 typename Types::ContentLayerType* surface = this->createDrawingSurface(p
arent, this->identityMatrix, FloatPoint(0, 0), IntSize(500, 300), false); |
2214 surface->setOpaqueContentsRect(IntRect(0, 0, 400, 200)); | 2222 surface->setOpaqueContentsRect(IntRect(0, 0, 400, 200)); |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2536 this->visitLayer(occludingLayer2, occlusion); | 2544 this->visitLayer(occludingLayer2, occlusion); |
2537 this->visitLayer(occludingLayer1, occlusion); | 2545 this->visitLayer(occludingLayer1, occlusion); |
2538 | 2546 |
2539 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace
().bounds()); | 2547 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace
().bounds()); |
2540 EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); | 2548 EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); |
2541 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurfa
ce().bounds()); | 2549 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurfa
ce().bounds()); |
2542 EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); | 2550 EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); |
2543 | 2551 |
2544 // Everything outside the surface/replica is occluded but the surface/re
plica itself is not. | 2552 // Everything outside the surface/replica is occluded but the surface/re
plica itself is not. |
2545 this->enterLayer(filteredSurface, occlusion); | 2553 this->enterLayer(filteredSurface, occlusion); |
2546 EXPECT_RECT_EQ(IntRect(1, 0, 99, 100), occlusion.unoccludedContentRect(f
ilteredSurface, IntRect(1, 0, 100, 100))); | 2554 EXPECT_RECT_EQ(IntRect(1, 0, 49, 50), occlusion.unoccludedContentRect(fi
lteredSurface, IntRect(1, 0, 50, 50))); |
2547 EXPECT_RECT_EQ(IntRect(0, 1, 100, 99), occlusion.unoccludedContentRect(f
ilteredSurface, IntRect(0, 1, 100, 100))); | 2555 EXPECT_RECT_EQ(IntRect(0, 1, 50, 49), occlusion.unoccludedContentRect(fi
lteredSurface, IntRect(0, 1, 50, 50))); |
2548 EXPECT_RECT_EQ(IntRect(0, 0, 99, 100), occlusion.unoccludedContentRect(f
ilteredSurface, IntRect(-1, 0, 100, 100))); | 2556 EXPECT_RECT_EQ(IntRect(0, 0, 49, 50), occlusion.unoccludedContentRect(fi
lteredSurface, IntRect(-1, 0, 50, 50))); |
2549 EXPECT_RECT_EQ(IntRect(0, 0, 100, 99), occlusion.unoccludedContentRect(f
ilteredSurface, IntRect(0, -1, 100, 100))); | 2557 EXPECT_RECT_EQ(IntRect(0, 0, 50, 49), occlusion.unoccludedContentRect(fi
lteredSurface, IntRect(0, -1, 50, 50))); |
2550 | 2558 |
2551 EXPECT_RECT_EQ(IntRect(300 + 1, 0, 99, 100), occlusion.unoccludedContent
Rect(filteredSurface, IntRect(300 + 1, 0, 100, 100))); | 2559 EXPECT_RECT_EQ(IntRect(150 + 1, 0, 49, 50), occlusion.unoccludedContentR
ect(filteredSurface, IntRect(150 + 1, 0, 50, 50))); |
2552 EXPECT_RECT_EQ(IntRect(300 + 0, 1, 100, 99), occlusion.unoccludedContent
Rect(filteredSurface, IntRect(300 + 0, 1, 100, 100))); | 2560 EXPECT_RECT_EQ(IntRect(150 + 0, 1, 50, 49), occlusion.unoccludedContentR
ect(filteredSurface, IntRect(150 + 0, 1, 50, 50))); |
2553 EXPECT_RECT_EQ(IntRect(300 + 0, 0, 99, 100), occlusion.unoccludedContent
Rect(filteredSurface, IntRect(300 - 1, 0, 100, 100))); | 2561 EXPECT_RECT_EQ(IntRect(150 + 0, 0, 49, 50), occlusion.unoccludedContentR
ect(filteredSurface, IntRect(150 - 1, 0, 50, 50))); |
2554 EXPECT_RECT_EQ(IntRect(300 + 0, 0, 100, 99), occlusion.unoccludedContent
Rect(filteredSurface, IntRect(300 + 0, -1, 100, 100))); | 2562 EXPECT_RECT_EQ(IntRect(150 + 0, 0, 50, 49), occlusion.unoccludedContentR
ect(filteredSurface, IntRect(150 + 0, -1, 50, 50))); |
2555 this->leaveLayer(filteredSurface, occlusion); | 2563 this->leaveLayer(filteredSurface, occlusion); |
2556 | 2564 |
2557 // The filtered layer/replica does not occlude. | 2565 // The filtered layer/replica does not occlude. |
2558 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace
().bounds()); | 2566 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace
().bounds()); |
2559 EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); | 2567 EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); |
2560 EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface()
.bounds()); | 2568 EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface()
.bounds()); |
2561 EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); | 2569 EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); |
2562 | 2570 |
2563 // The surface has a background blur, so it needs pixels that are curren
tly considered occluded in order to be drawn. So the pixels | 2571 // The surface has a background blur, so it needs pixels that are curren
tly considered occluded in order to be drawn. So the pixels |
2564 // it needs should be removed some the occluded area so that when we get
to the parent they are drawn. | 2572 // it needs should be removed from the occluded area so that when we get
to the parent they are drawn. |
2565 this->visitContributingSurface(filteredSurface, occlusion); | 2573 this->visitContributingSurface(filteredSurface, occlusion); |
2566 | 2574 |
2567 this->enterLayer(parent, occlusion); | 2575 this->enterLayer(parent, occlusion); |
2568 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace
().bounds()); | 2576 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace
().bounds()); |
2569 EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); | 2577 EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); |
2570 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurfa
ce().bounds()); | 2578 EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurfa
ce().bounds()); |
2571 EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); | 2579 EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); |
2572 | 2580 |
2573 IntRect outsetRect; | 2581 IntRect outsetRect; |
2574 IntRect testRect; | 2582 IntRect testRect; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2610 testRect.move(-1, 0); | 2618 testRect.move(-1, 0); |
2611 testRect.expand(1, 0); | 2619 testRect.expand(1, 0); |
2612 EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testR
ect)); | 2620 EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testR
ect)); |
2613 testRect = outsetRect; | 2621 testRect = outsetRect; |
2614 testRect.move(0, -1); | 2622 testRect.move(0, -1); |
2615 testRect.expand(0, 1); | 2623 testRect.expand(0, 1); |
2616 EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testR
ect)); | 2624 EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testR
ect)); |
2617 } | 2625 } |
2618 }; | 2626 }; |
2619 | 2627 |
2620 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDontOccludePixelsNeededForBack
groundFilter); | 2628 // Scale transforms require main thread+commit to get contentBounds right. |
| 2629 MAIN_THREAD_TEST(CCOcclusionTrackerTestDontOccludePixelsNeededForBackgroundFilte
r); |
2621 | 2630 |
2622 template<class Types, bool opaqueLayers> | 2631 template<class Types, bool opaqueLayers> |
2623 class CCOcclusionTrackerTestTwoBackgroundFiltersReduceOcclusionTwice : public CC
OcclusionTrackerTest<Types, opaqueLayers> { | 2632 class CCOcclusionTrackerTestTwoBackgroundFiltersReduceOcclusionTwice : public CC
OcclusionTrackerTest<Types, opaqueLayers> { |
2624 protected: | 2633 protected: |
2625 void runMyTest() | 2634 void runMyTest() |
2626 { | 2635 { |
2627 WebTransformationMatrix scaleByHalf; | 2636 WebTransformationMatrix scaleByHalf; |
2628 scaleByHalf.scale(0.5); | 2637 scaleByHalf.scale(0.5); |
2629 | 2638 |
2630 // Makes two surfaces that completely cover |parent|. The occlusion both
above and below the filters will be reduced by each of them. | 2639 // Makes two surfaces that completely cover |parent|. The occlusion both
above and below the filters will be reduced by each of them. |
2631 typename Types::ContentLayerType* root = this->createRoot(this->identity
Matrix, FloatPoint(0, 0), IntSize(75, 75)); | 2640 typename Types::ContentLayerType* root = this->createRoot(this->identity
Matrix, FloatPoint(0, 0), IntSize(150, 150)); |
2632 typename Types::LayerType* parent = this->createSurface(root, scaleByHal
f, FloatPoint(0, 0), IntSize(150, 150)); | 2641 typename Types::LayerType* parent = this->createDrawingSurface(root, sca
leByHalf, FloatPoint(0, 0), IntSize(300, 300), false); |
2633 parent->setMasksToBounds(true); | 2642 parent->setMasksToBounds(true); |
2634 typename Types::LayerType* filteredSurface1 = this->createDrawingLayer(p
arent, scaleByHalf, FloatPoint(0, 0), IntSize(300, 300), false); | 2643 typename Types::LayerType* filteredSurface1 = this->createDrawingLayer(p
arent, scaleByHalf, FloatPoint(0, 0), IntSize(600, 600), false); |
2635 typename Types::LayerType* filteredSurface2 = this->createDrawingLayer(p
arent, scaleByHalf, FloatPoint(0, 0), IntSize(300, 300), false); | 2644 typename Types::LayerType* filteredSurface2 = this->createDrawingLayer(p
arent, scaleByHalf, FloatPoint(0, 0), IntSize(600, 600), false); |
2636 typename Types::LayerType* occludingLayerAbove = this->createDrawingLaye
r(parent, this->identityMatrix, FloatPoint(100, 100), IntSize(50, 50), true); | 2645 typename Types::LayerType* occludingLayerAbove = this->createDrawingLaye
r(parent, this->identityMatrix, FloatPoint(200, 200), IntSize(100, 100), true); |
2637 | 2646 |
2638 // Filters make the layers own surfaces. | 2647 // Filters make the layers own surfaces. |
2639 WebFilterOperations filters; | 2648 WebFilterOperations filters; |
2640 filters.append(WebFilterOperation::createBlurFilter(3)); | 2649 filters.append(WebFilterOperation::createBlurFilter(3)); |
2641 filteredSurface1->setBackgroundFilters(filters); | 2650 filteredSurface1->setBackgroundFilters(filters); |
2642 filteredSurface2->setBackgroundFilters(filters); | 2651 filteredSurface2->setBackgroundFilters(filters); |
2643 | 2652 |
2644 // Save the distance of influence for the blur effect. | 2653 // Save the distance of influence for the blur effect. |
2645 int outsetTop, outsetRight, outsetBottom, outsetLeft; | 2654 int outsetTop, outsetRight, outsetBottom, outsetLeft; |
2646 filters.getOutsets(outsetTop, outsetRight, outsetBottom, outsetLeft); | 2655 filters.getOutsets(outsetTop, outsetRight, outsetBottom, outsetLeft); |
2647 | 2656 |
2648 this->calcDrawEtc(root); | 2657 this->calcDrawEtc(root); |
2649 | 2658 |
2650 TestCCOcclusionTrackerWithClip<typename Types::LayerType, typename Types
::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000)); | 2659 TestCCOcclusionTrackerWithClip<typename Types::LayerType, typename Types
::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000)); |
2651 occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); | 2660 occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); |
2652 | 2661 |
2653 this->visitLayer(occludingLayerAbove, occlusion); | 2662 this->visitLayer(occludingLayerAbove, occlusion); |
2654 EXPECT_RECT_EQ(IntRect(100 / 2, 100 / 2, 50 / 2, 50 / 2), occlusion.occl
usionInScreenSpace().bounds()); | 2663 EXPECT_RECT_EQ(IntRect(200 / 2, 200 / 2, 100 / 2, 100 / 2), occlusion.oc
clusionInScreenSpace().bounds()); |
2655 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); | 2664 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); |
2656 EXPECT_RECT_EQ(IntRect(100, 100, 50, 50), occlusion.occlusionInTargetSur
face().bounds()); | 2665 EXPECT_RECT_EQ(IntRect(200 / 2, 200 / 2, 100 / 2, 100 / 2), occlusion.oc
clusionInTargetSurface().bounds()); |
2657 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); | 2666 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); |
2658 | 2667 |
2659 this->visitLayer(filteredSurface2, occlusion); | 2668 this->visitLayer(filteredSurface2, occlusion); |
2660 this->visitContributingSurface(filteredSurface2, occlusion); | 2669 this->visitContributingSurface(filteredSurface2, occlusion); |
2661 this->visitLayer(filteredSurface1, occlusion); | 2670 this->visitLayer(filteredSurface1, occlusion); |
2662 this->visitContributingSurface(filteredSurface1, occlusion); | 2671 this->visitContributingSurface(filteredSurface1, occlusion); |
2663 | 2672 |
2664 ASSERT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); | 2673 ASSERT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); |
2665 ASSERT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); | 2674 ASSERT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); |
2666 | 2675 |
2667 // Test expectations in the target. | 2676 // Test expectations in the target. The target is scaled in half so the
occlusion should be scaled within its contents as well. |
2668 IntRect expectedOcclusion = IntRect(100 + outsetRight * 2, 100 + outsetB
ottom * 2, 50 - (outsetLeft + outsetRight) * 2, 50 - (outsetTop + outsetBottom)
* 2); | 2677 IntRect expectedOcclusion = IntRect(200 / 2 + outsetRight * 2, 200 / 2 +
outsetBottom * 2, 100 / 2 - (outsetLeft + outsetRight) * 2, 100 / 2 - (outsetTo
p + outsetBottom) * 2); |
2669 EXPECT_RECT_EQ(expectedOcclusion, occlusion.occlusionInTargetSurface().r
ects()[0]); | 2678 EXPECT_RECT_EQ(expectedOcclusion, occlusion.occlusionInTargetSurface().r
ects()[0]); |
2670 | 2679 |
2671 // Test expectations in the screen. Take the ceiling of half of the outs
ets. | 2680 // Test expectations in the screen. The parent is scaled in half so it w
ill scale the occlusion to the screen as well. |
2672 outsetTop = (outsetTop + 1) / 2; | 2681 expectedOcclusion = IntRect(200 / 2 + outsetRight * 2, 200 / 2 + outsetB
ottom * 2, 100 / 2 - (outsetLeft + outsetRight) * 2, 100 / 2 - (outsetTop + outs
etBottom) * 2); |
2673 outsetRight = (outsetRight + 1) / 2; | |
2674 outsetBottom = (outsetBottom + 1) / 2; | |
2675 outsetLeft = (outsetLeft + 1) / 2; | |
2676 expectedOcclusion = IntRect(100 / 2 + outsetRight * 2, 100 / 2 + outsetB
ottom * 2, 50 / 2 - (outsetLeft + outsetRight) * 2, 50 /2 - (outsetTop + outsetB
ottom) * 2); | |
2677 | |
2678 EXPECT_RECT_EQ(expectedOcclusion, occlusion.occlusionInScreenSpace().rec
ts()[0]); | 2682 EXPECT_RECT_EQ(expectedOcclusion, occlusion.occlusionInScreenSpace().rec
ts()[0]); |
2679 } | 2683 } |
2680 }; | 2684 }; |
2681 | 2685 |
2682 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestTwoBackgroundFiltersReduceOccl
usionTwice); | 2686 // Scale transforms require main thread+commit to get contentBounds right. |
| 2687 MAIN_THREAD_TEST(CCOcclusionTrackerTestTwoBackgroundFiltersReduceOcclusionTwice)
; |
2683 | 2688 |
2684 template<class Types, bool opaqueLayers> | 2689 template<class Types, bool opaqueLayers> |
2685 class CCOcclusionTrackerTestDontOccludePixelsNeededForBackgroundFilterWithClip :
public CCOcclusionTrackerTest<Types, opaqueLayers> { | 2690 class CCOcclusionTrackerTestDontOccludePixelsNeededForBackgroundFilterWithClip :
public CCOcclusionTrackerTest<Types, opaqueLayers> { |
2686 protected: | 2691 protected: |
2687 void runMyTest() | 2692 void runMyTest() |
2688 { | 2693 { |
2689 // Make a surface and its replica, each 50x50, that are completely surro
unded by opaque layers which are above them in the z-order. | 2694 // Make a surface and its replica, each 50x50, that are completely surro
unded by opaque layers which are above them in the z-order. |
2690 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(300, 150)); | 2695 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(300, 150)); |
2691 // We stick the filtered surface inside a clipping surface so that we ca
n make sure the clip is honored when exposing pixels for | 2696 // We stick the filtered surface inside a clipping surface so that we ca
n make sure the clip is honored when exposing pixels for |
2692 // the background filter. | 2697 // the background filter. |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2846 IntRect occlusionBehindReplica = IntRect(210, 60, 30, 30); | 2851 IntRect occlusionBehindReplica = IntRect(210, 60, 30, 30); |
2847 | 2852 |
2848 IntRect expectedOpaqueBounds = unionRect(occlusionBehindSurface, occlusi
onBehindReplica); | 2853 IntRect expectedOpaqueBounds = unionRect(occlusionBehindSurface, occlusi
onBehindReplica); |
2849 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().
bounds()); | 2854 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().
bounds()); |
2850 EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); | 2855 EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); |
2851 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface(
).bounds()); | 2856 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface(
).bounds()); |
2852 EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); | 2857 EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); |
2853 } | 2858 } |
2854 }; | 2859 }; |
2855 | 2860 |
2856 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDontReduceOcclusionBelowBackgr
oundFilter); | 2861 // Scale transforms require main thread+commit to get contentBounds right. |
| 2862 MAIN_THREAD_TEST(CCOcclusionTrackerTestDontReduceOcclusionBelowBackgroundFilter)
; |
2857 | 2863 |
2858 template<class Types, bool opaqueLayers> | 2864 template<class Types, bool opaqueLayers> |
2859 class CCOcclusionTrackerTestDontReduceOcclusionIfBackgroundFilterIsOccluded : pu
blic CCOcclusionTrackerTest<Types, opaqueLayers> { | 2865 class CCOcclusionTrackerTestDontReduceOcclusionIfBackgroundFilterIsOccluded : pu
blic CCOcclusionTrackerTest<Types, opaqueLayers> { |
2860 protected: | 2866 protected: |
2861 void runMyTest() | 2867 void runMyTest() |
2862 { | 2868 { |
2863 WebTransformationMatrix scaleByHalf; | 2869 WebTransformationMatrix scaleByHalf; |
2864 scaleByHalf.scale(0.5); | 2870 scaleByHalf.scale(0.5); |
2865 | 2871 |
2866 // Make a surface and its replica, each 50x50, that are completely occlu
ded by opaque layers which are above them in the z-order. | 2872 // Make a surface and its replica, each 50x50, that are completely occlu
ded by opaque layers which are above them in the z-order. |
(...skipping 27 matching lines...) Expand all Loading... |
2894 IntRect occlusionAboveReplica = IntRect(200, 50, 50, 50); | 2900 IntRect occlusionAboveReplica = IntRect(200, 50, 50, 50); |
2895 | 2901 |
2896 IntRect expectedOpaqueBounds = unionRect(occlusionAboveSurface, occlusio
nAboveReplica); | 2902 IntRect expectedOpaqueBounds = unionRect(occlusionAboveSurface, occlusio
nAboveReplica); |
2897 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().
bounds()); | 2903 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().
bounds()); |
2898 EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); | 2904 EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); |
2899 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface(
).bounds()); | 2905 EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface(
).bounds()); |
2900 EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); | 2906 EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); |
2901 } | 2907 } |
2902 }; | 2908 }; |
2903 | 2909 |
2904 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestDontReduceOcclusionIfBackgroun
dFilterIsOccluded); | 2910 // Scale transforms require main thread+commit to get contentBounds right. |
| 2911 MAIN_THREAD_TEST(CCOcclusionTrackerTestDontReduceOcclusionIfBackgroundFilterIsOc
cluded); |
2905 | 2912 |
2906 template<class Types, bool opaqueLayers> | 2913 template<class Types, bool opaqueLayers> |
2907 class CCOcclusionTrackerTestReduceOcclusionWhenBackgroundFilterIsPartiallyOcclud
ed : public CCOcclusionTrackerTest<Types, opaqueLayers> { | 2914 class CCOcclusionTrackerTestReduceOcclusionWhenBackgroundFilterIsPartiallyOcclud
ed : public CCOcclusionTrackerTest<Types, opaqueLayers> { |
2908 protected: | 2915 protected: |
2909 void runMyTest() | 2916 void runMyTest() |
2910 { | 2917 { |
2911 WebTransformationMatrix scaleByHalf; | 2918 WebTransformationMatrix scaleByHalf; |
2912 scaleByHalf.scale(0.5); | 2919 scaleByHalf.scale(0.5); |
2913 | 2920 |
2914 // Make a surface and its replica, each 50x50, that are partially occlud
ed by opaque layers which are above them in the z-order. | 2921 // Make a surface and its replica, each 50x50, that are partially occlud
ed by opaque layers which are above them in the z-order. |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2966 for (size_t i = 0; i < expectedOcclusion.rects().size(); ++i) { | 2973 for (size_t i = 0; i < expectedOcclusion.rects().size(); ++i) { |
2967 IntRect expectedRect = expectedOcclusion.rects()[i]; | 2974 IntRect expectedRect = expectedOcclusion.rects()[i]; |
2968 IntRect screenRect = occlusion.occlusionInScreenSpace().rects()[i]; | 2975 IntRect screenRect = occlusion.occlusionInScreenSpace().rects()[i]; |
2969 IntRect targetRect = occlusion.occlusionInTargetSurface().rects()[i]
; | 2976 IntRect targetRect = occlusion.occlusionInTargetSurface().rects()[i]
; |
2970 EXPECT_EQ(expectedRect, screenRect); | 2977 EXPECT_EQ(expectedRect, screenRect); |
2971 EXPECT_EQ(expectedRect, targetRect); | 2978 EXPECT_EQ(expectedRect, targetRect); |
2972 } | 2979 } |
2973 } | 2980 } |
2974 }; | 2981 }; |
2975 | 2982 |
2976 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestReduceOcclusionWhenBackgroundF
ilterIsPartiallyOccluded); | 2983 // Scale transforms require main thread+commit to get contentBounds right. |
| 2984 MAIN_THREAD_TEST(CCOcclusionTrackerTestReduceOcclusionWhenBackgroundFilterIsPart
iallyOccluded); |
2977 | 2985 |
2978 template<class Types, bool opaqueLayers> | 2986 template<class Types, bool opaqueLayers> |
2979 class CCOcclusionTrackerTestMinimumTrackingSize : public CCOcclusionTrackerTest<
Types, opaqueLayers> { | 2987 class CCOcclusionTrackerTestMinimumTrackingSize : public CCOcclusionTrackerTest<
Types, opaqueLayers> { |
2980 protected: | 2988 protected: |
2981 void runMyTest() | 2989 void runMyTest() |
2982 { | 2990 { |
2983 IntSize trackingSize(100, 100); | 2991 IntSize trackingSize(100, 100); |
2984 IntSize belowTrackingSize(99, 99); | 2992 IntSize belowTrackingSize(99, 99); |
2985 | 2993 |
2986 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(400, 400)); | 2994 typename Types::ContentLayerType* parent = this->createRoot(this->identi
tyMatrix, FloatPoint(0, 0), IntSize(400, 400)); |
(...skipping 19 matching lines...) Expand all Loading... |
3006 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInS
creenSpace().bounds()); | 3014 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInS
creenSpace().bounds()); |
3007 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); | 3015 EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); |
3008 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInT
argetSurface().bounds()); | 3016 EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInT
argetSurface().bounds()); |
3009 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); | 3017 EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); |
3010 } | 3018 } |
3011 }; | 3019 }; |
3012 | 3020 |
3013 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestMinimumTrackingSize); | 3021 ALL_CCOCCLUSIONTRACKER_TEST(CCOcclusionTrackerTestMinimumTrackingSize); |
3014 | 3022 |
3015 } // namespace | 3023 } // namespace |
OLD | NEW |