Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: cc/layer_tree_host_unittest.cc

Issue 11450015: [cc] Move root layer pointer to LayerTreeImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/layer_tree_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/layer_tree_host.h" 5 #include "cc/layer_tree_host.h"
6 6
7 #include "base/synchronization/lock.h" 7 #include "base/synchronization/lock.h"
8 #include "cc/content_layer.h" 8 #include "cc/content_layer.h"
9 #include "cc/content_layer_client.h" 9 #include "cc/content_layer_client.h"
10 #include "cc/layer_tree_host_impl.h" 10 #include "cc/layer_tree_host_impl.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 156
157 virtual void beginTest() OVERRIDE 157 virtual void beginTest() OVERRIDE
158 { 158 {
159 postSetNeedsCommitToMainThread(); 159 postSetNeedsCommitToMainThread();
160 postSetNeedsCommitToMainThread(); 160 postSetNeedsCommitToMainThread();
161 } 161 }
162 162
163 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 163 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
164 { 164 {
165 m_numDraws++; 165 m_numDraws++;
166 if (!impl->sourceFrameNumber()) 166 if (!impl->activeTree()->source_frame_number())
167 endTest(); 167 endTest();
168 } 168 }
169 169
170 virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE 170 virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE
171 { 171 {
172 m_numCommits++; 172 m_numCommits++;
173 } 173 }
174 174
175 virtual void afterTest() OVERRIDE 175 virtual void afterTest() OVERRIDE
176 { 176 {
(...skipping 21 matching lines...) Expand all
198 { 198 {
199 } 199 }
200 200
201 virtual void beginTest() OVERRIDE 201 virtual void beginTest() OVERRIDE
202 { 202 {
203 postSetNeedsCommitToMainThread(); 203 postSetNeedsCommitToMainThread();
204 } 204 }
205 205
206 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 206 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
207 { 207 {
208 if (!impl->sourceFrameNumber()) 208 if (impl->activeTree()->source_frame_number() == 0)
209 postSetNeedsCommitToMainThread(); 209 postSetNeedsCommitToMainThread();
210 else if (impl->sourceFrameNumber() == 1) 210 else if (impl->activeTree()->source_frame_number() == 1)
211 endTest(); 211 endTest();
212 } 212 }
213 213
214 virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE 214 virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE
215 { 215 {
216 m_numCommits++; 216 m_numCommits++;
217 } 217 }
218 218
219 virtual void afterTest() OVERRIDE 219 virtual void afterTest() OVERRIDE
220 { 220 {
(...skipping 21 matching lines...) Expand all
242 { 242 {
243 } 243 }
244 244
245 virtual void beginTest() OVERRIDE 245 virtual void beginTest() OVERRIDE
246 { 246 {
247 postSetNeedsCommitToMainThread(); 247 postSetNeedsCommitToMainThread();
248 } 248 }
249 249
250 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 250 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
251 { 251 {
252 EXPECT_EQ(0, impl->sourceFrameNumber()); 252 EXPECT_EQ(0, impl->activeTree()->source_frame_number());
253 if (!m_numDraws) 253 if (!m_numDraws)
254 postSetNeedsRedrawToMainThread(); // Redraw again to verify that the second redraw doesn't commit. 254 postSetNeedsRedrawToMainThread(); // Redraw again to verify that the second redraw doesn't commit.
255 else 255 else
256 endTest(); 256 endTest();
257 m_numDraws++; 257 m_numDraws++;
258 } 258 }
259 259
260 virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE 260 virtual void commitCompleteOnThread(LayerTreeHostImpl*) OVERRIDE
261 { 261 {
262 EXPECT_EQ(0, m_numDraws); 262 EXPECT_EQ(0, m_numDraws);
(...skipping 26 matching lines...) Expand all
289 289
290 virtual void beginTest() OVERRIDE 290 virtual void beginTest() OVERRIDE
291 { 291 {
292 postSetNeedsCommitToMainThread(); 292 postSetNeedsCommitToMainThread();
293 } 293 }
294 294
295 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 295 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
296 { 296 {
297 // Only the initial draw should bring us here. 297 // Only the initial draw should bring us here.
298 EXPECT_TRUE(impl->canDraw()); 298 EXPECT_TRUE(impl->canDraw());
299 EXPECT_EQ(0, impl->sourceFrameNumber()); 299 EXPECT_EQ(0, impl->activeTree()->source_frame_number());
300 } 300 }
301 301
302 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 302 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
303 { 303 {
304 if (m_numCommits >= 1) { 304 if (m_numCommits >= 1) {
305 // After the first commit, we should not be able to draw. 305 // After the first commit, we should not be able to draw.
306 EXPECT_FALSE(impl->canDraw()); 306 EXPECT_FALSE(impl->canDraw());
307 } 307 }
308 } 308 }
309 309
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 864
865 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 865 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
866 { 866 {
867 LayerImpl* root = impl->rootLayer(); 867 LayerImpl* root = impl->rootLayer();
868 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 868 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
869 869
870 root->setScrollable(true); 870 root->setScrollable(true);
871 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 871 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
872 root->scrollBy(m_scrollAmount); 872 root->scrollBy(m_scrollAmount);
873 873
874 if (!impl->sourceFrameNumber()) { 874 if (!impl->activeTree()->source_frame_number()) {
875 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll); 875 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
876 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount); 876 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount);
877 postSetNeedsCommitToMainThread(); 877 postSetNeedsCommitToMainThread();
878 } else if (impl->sourceFrameNumber() == 1) { 878 } else if (impl->activeTree()->source_frame_number() == 1) {
879 EXPECT_VECTOR_EQ(root->scrollOffset(), m_secondScroll); 879 EXPECT_VECTOR_EQ(root->scrollOffset(), m_secondScroll);
880 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount); 880 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount);
881 endTest(); 881 endTest();
882 } 882 }
883 } 883 }
884 884
885 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE 885 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
886 { 886 {
887 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 887 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
888 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta); 888 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 else if (m_layerTreeHost->commitNumber() == 2) 931 else if (m_layerTreeHost->commitNumber() == 2)
932 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount); 932 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount);
933 } 933 }
934 934
935 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 935 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
936 { 936 {
937 LayerImpl* root = impl->rootLayer(); 937 LayerImpl* root = impl->rootLayer();
938 root->setScrollable(true); 938 root->setScrollable(true);
939 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 939 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
940 940
941 if (!impl->sourceFrameNumber() && impl->sourceAnimationFrameNumber() == 1) { 941 if (!impl->activeTree()->source_frame_number() && impl->sourceAnimationF rameNumber() == 1) {
942 // First draw after first commit. 942 // First draw after first commit.
943 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 943 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
944 root->scrollBy(m_scrollAmount); 944 root->scrollBy(m_scrollAmount);
945 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount); 945 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount);
946 946
947 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll); 947 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
948 postSetNeedsRedrawToMainThread(); 948 postSetNeedsRedrawToMainThread();
949 } else if (!impl->sourceFrameNumber() && impl->sourceAnimationFrameNumbe r() == 2) { 949 } else if (!impl->activeTree()->source_frame_number() && impl->sourceAni mationFrameNumber() == 2) {
950 // Second draw after first commit. 950 // Second draw after first commit.
951 EXPECT_EQ(root->scrollDelta(), m_scrollAmount); 951 EXPECT_EQ(root->scrollDelta(), m_scrollAmount);
952 root->scrollBy(m_scrollAmount); 952 root->scrollBy(m_scrollAmount);
953 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount + m_scrollAmoun t); 953 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount + m_scrollAmoun t);
954 954
955 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll); 955 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
956 postSetNeedsCommitToMainThread(); 956 postSetNeedsCommitToMainThread();
957 } else if (impl->sourceFrameNumber() == 1) { 957 } else if (impl->activeTree()->source_frame_number() == 1) {
958 // Third or later draw after second commit. 958 // Third or later draw after second commit.
959 EXPECT_GE(impl->sourceAnimationFrameNumber(), 3); 959 EXPECT_GE(impl->sourceAnimationFrameNumber(), 3);
960 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 960 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
961 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount); 961 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount);
962 endTest(); 962 endTest();
963 } 963 }
964 } 964 }
965 965
966 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE 966 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
967 { 967 {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 { 1057 {
1058 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 1058 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
1059 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta); 1059 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta);
1060 m_layerTreeHost->setPageScaleFactorAndLimits(scale, 0.5, 2); 1060 m_layerTreeHost->setPageScaleFactorAndLimits(scale, 0.5, 2);
1061 } 1061 }
1062 1062
1063 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 1063 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
1064 { 1064 {
1065 impl->processScrollDeltas(); 1065 impl->processScrollDeltas();
1066 // We get one commit before the first draw, and the animation doesn't ha ppen until the second draw. 1066 // We get one commit before the first draw, and the animation doesn't ha ppen until the second draw.
1067 if (impl->sourceFrameNumber() == 1) { 1067 if (impl->activeTree()->source_frame_number() == 1) {
1068 EXPECT_EQ(1.25, impl->pageScaleFactor()); 1068 EXPECT_EQ(1.25, impl->pageScaleFactor());
1069 endTest(); 1069 endTest();
1070 } else 1070 } else
1071 postSetNeedsRedrawToMainThread(); 1071 postSetNeedsRedrawToMainThread();
1072 } 1072 }
1073 1073
1074 virtual void afterTest() OVERRIDE 1074 virtual void afterTest() OVERRIDE
1075 { 1075 {
1076 } 1076 }
1077 1077
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 m_layerTreeHost->setRootLayer(m_rootLayer); 1301 m_layerTreeHost->setRootLayer(m_rootLayer);
1302 postSetNeedsCommitToMainThread(); 1302 postSetNeedsCommitToMainThread();
1303 } 1303 }
1304 1304
1305 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 1305 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
1306 { 1306 {
1307 // Get access to protected methods. 1307 // Get access to protected methods.
1308 MockLayerTreeHostImpl* mockImpl = static_cast<MockLayerTreeHostImpl*>(im pl); 1308 MockLayerTreeHostImpl* mockImpl = static_cast<MockLayerTreeHostImpl*>(im pl);
1309 1309
1310 // Should only do one commit. 1310 // Should only do one commit.
1311 EXPECT_EQ(0, impl->sourceFrameNumber()); 1311 EXPECT_EQ(0, impl->activeTree()->source_frame_number());
1312 // Device scale factor should come over to impl. 1312 // Device scale factor should come over to impl.
1313 EXPECT_NEAR(impl->deviceScaleFactor(), 1.5, 0.00001); 1313 EXPECT_NEAR(impl->deviceScaleFactor(), 1.5, 0.00001);
1314 1314
1315 // Both layers are on impl. 1315 // Both layers are on impl.
1316 ASSERT_EQ(1u, impl->rootLayer()->children().size()); 1316 ASSERT_EQ(1u, impl->rootLayer()->children().size());
1317 1317
1318 // Device viewport is scaled. 1318 // Device viewport is scaled.
1319 EXPECT_EQ(gfx::Size(40, 40), impl->layoutViewportSize()); 1319 EXPECT_EQ(gfx::Size(40, 40), impl->layoutViewportSize());
1320 EXPECT_EQ(gfx::Size(60, 60), impl->deviceViewportSize()); 1320 EXPECT_EQ(gfx::Size(60, 60), impl->deviceViewportSize());
1321 1321
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1396 m_layerTreeHost->setViewportSize(gfx::Size(10, 10), gfx::Size(10, 10)); 1396 m_layerTreeHost->setViewportSize(gfx::Size(10, 10), gfx::Size(10, 10));
1397 1397
1398 postSetNeedsCommitToMainThread(); 1398 postSetNeedsCommitToMainThread();
1399 postSetNeedsRedrawToMainThread(); 1399 postSetNeedsRedrawToMainThread();
1400 } 1400 }
1401 1401
1402 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 1402 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
1403 { 1403 {
1404 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D()); 1404 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D());
1405 1405
1406 switch (impl->sourceFrameNumber()) { 1406 switch (impl->activeTree()->source_frame_number()) {
1407 case 0: 1407 case 0:
1408 // Number of textures should be one. 1408 // Number of textures should be one.
1409 ASSERT_EQ(1, context->numTextures()); 1409 ASSERT_EQ(1, context->numTextures());
1410 // Number of textures used for commit should be one. 1410 // Number of textures used for commit should be one.
1411 EXPECT_EQ(1, context->numUsedTextures()); 1411 EXPECT_EQ(1, context->numUsedTextures());
1412 // Verify that used texture is correct. 1412 // Verify that used texture is correct.
1413 EXPECT_TRUE(context->usedTexture(context->texture(0))); 1413 EXPECT_TRUE(context->usedTexture(context->texture(0)));
1414 1414
1415 context->resetUsedTextures(); 1415 context->resetUsedTextures();
1416 break; 1416 break;
(...skipping 16 matching lines...) Expand all
1433 } 1433 }
1434 } 1434 }
1435 1435
1436 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 1436 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
1437 { 1437 {
1438 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D()); 1438 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D());
1439 1439
1440 // Number of textures used for draw should always be one. 1440 // Number of textures used for draw should always be one.
1441 EXPECT_EQ(1, context->numUsedTextures()); 1441 EXPECT_EQ(1, context->numUsedTextures());
1442 1442
1443 if (impl->sourceFrameNumber() < 1) { 1443 if (impl->activeTree()->source_frame_number() < 1) {
1444 context->resetUsedTextures(); 1444 context->resetUsedTextures();
1445 postSetNeedsCommitToMainThread(); 1445 postSetNeedsCommitToMainThread();
1446 postSetNeedsRedrawToMainThread(); 1446 postSetNeedsRedrawToMainThread();
1447 } else 1447 } else
1448 endTest(); 1448 endTest();
1449 } 1449 }
1450 1450
1451 virtual void layout() OVERRIDE 1451 virtual void layout() OVERRIDE
1452 { 1452 {
1453 m_layer->setNeedsDisplay(); 1453 m_layer->setNeedsDisplay();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 setLayerPropertiesForTesting(m_child.get(), m_parent.get(), identityMatr ix, gfx::PointF(0, 0), gfx::PointF(0, 10), gfx::Size(10, 10), false); 1500 setLayerPropertiesForTesting(m_child.get(), m_parent.get(), identityMatr ix, gfx::PointF(0, 0), gfx::PointF(0, 10), gfx::Size(10, 10), false);
1501 1501
1502 postSetNeedsCommitToMainThread(); 1502 postSetNeedsCommitToMainThread();
1503 postSetNeedsRedrawToMainThread(); 1503 postSetNeedsRedrawToMainThread();
1504 } 1504 }
1505 1505
1506 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 1506 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
1507 { 1507 {
1508 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D()); 1508 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D());
1509 1509
1510 switch (impl->sourceFrameNumber()) { 1510 switch (impl->activeTree()->source_frame_number()) {
1511 case 0: 1511 case 0:
1512 // Number of textures should be two. 1512 // Number of textures should be two.
1513 ASSERT_EQ(2, context->numTextures()); 1513 ASSERT_EQ(2, context->numTextures());
1514 // Number of textures used for commit should be two. 1514 // Number of textures used for commit should be two.
1515 EXPECT_EQ(2, context->numUsedTextures()); 1515 EXPECT_EQ(2, context->numUsedTextures());
1516 // Verify that used textures are correct. 1516 // Verify that used textures are correct.
1517 EXPECT_TRUE(context->usedTexture(context->texture(0))); 1517 EXPECT_TRUE(context->usedTexture(context->texture(0)));
1518 EXPECT_TRUE(context->usedTexture(context->texture(1))); 1518 EXPECT_TRUE(context->usedTexture(context->texture(1)));
1519 1519
1520 context->resetUsedTextures(); 1520 context->resetUsedTextures();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 break; 1554 break;
1555 } 1555 }
1556 } 1556 }
1557 1557
1558 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 1558 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
1559 { 1559 {
1560 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D()); 1560 CompositorFakeWebGraphicsContext3DWithTextureTracking* context = static_ cast<CompositorFakeWebGraphicsContext3DWithTextureTracking*>(impl->outputSurface ()->context3D());
1561 1561
1562 // Number of textures used for drawing should two except for frame 4 1562 // Number of textures used for drawing should two except for frame 4
1563 // where the viewport only contains one layer. 1563 // where the viewport only contains one layer.
1564 if (impl->sourceFrameNumber() == 3) 1564 if (impl->activeTree()->source_frame_number() == 3)
1565 EXPECT_EQ(1, context->numUsedTextures()); 1565 EXPECT_EQ(1, context->numUsedTextures());
1566 else 1566 else
1567 EXPECT_EQ(2, context->numUsedTextures()); 1567 EXPECT_EQ(2, context->numUsedTextures());
1568 1568
1569 if (impl->sourceFrameNumber() < 4) { 1569 if (impl->activeTree()->source_frame_number() < 4) {
1570 context->resetUsedTextures(); 1570 context->resetUsedTextures();
1571 postSetNeedsCommitToMainThread(); 1571 postSetNeedsCommitToMainThread();
1572 postSetNeedsRedrawToMainThread(); 1572 postSetNeedsRedrawToMainThread();
1573 } else 1573 } else
1574 endTest(); 1574 endTest();
1575 } 1575 }
1576 1576
1577 virtual void layout() OVERRIDE 1577 virtual void layout() OVERRIDE
1578 { 1578 {
1579 switch (m_numCommits++) { 1579 switch (m_numCommits++) {
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
2038 m_layerTreeHost->rootLayer()->setScrollable(true); 2038 m_layerTreeHost->rootLayer()->setScrollable(true);
2039 postSetNeedsCommitToMainThread(); 2039 postSetNeedsCommitToMainThread();
2040 } 2040 }
2041 2041
2042 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 2042 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
2043 { 2043 {
2044 LayerImpl* root = impl->rootLayer(); 2044 LayerImpl* root = impl->rootLayer();
2045 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 2045 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
2046 2046
2047 // Check that a fractional scroll delta is correctly accumulated over mu ltiple commits. 2047 // Check that a fractional scroll delta is correctly accumulated over mu ltiple commits.
2048 if (!impl->sourceFrameNumber()) { 2048 if (!impl->activeTree()->source_frame_number()) {
2049 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::Vector2d(0, 0)); 2049 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::Vector2d(0, 0));
2050 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d(0, 0)); 2050 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d(0, 0));
2051 postSetNeedsCommitToMainThread(); 2051 postSetNeedsCommitToMainThread();
2052 } else if (impl->sourceFrameNumber() == 1) { 2052 } else if (impl->activeTree()->source_frame_number() == 1) {
2053 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::ToFlooredVector2d(m_scro llAmount)); 2053 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::ToFlooredVector2d(m_scro llAmount));
2054 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2dF(fmod(m_scrollAm ount.x(), 1), 0)); 2054 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2dF(fmod(m_scrollAm ount.x(), 1), 0));
2055 postSetNeedsCommitToMainThread(); 2055 postSetNeedsCommitToMainThread();
2056 } else if (impl->sourceFrameNumber() == 2) { 2056 } else if (impl->activeTree()->source_frame_number() == 2) {
2057 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::ToFlooredVector2d(m_scro llAmount + m_scrollAmount)); 2057 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::ToFlooredVector2d(m_scro llAmount + m_scrollAmount));
2058 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2dF(fmod(2 * m_scro llAmount.x(), 1), 0)); 2058 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2dF(fmod(2 * m_scro llAmount.x(), 1), 0));
2059 endTest(); 2059 endTest();
2060 } 2060 }
2061 root->scrollBy(m_scrollAmount); 2061 root->scrollBy(m_scrollAmount);
2062 } 2062 }
2063 2063
2064 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE 2064 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
2065 { 2065 {
2066 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 2066 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
2258 LayerImpl* rootScrollLayer = root->children()[0]; 2258 LayerImpl* rootScrollLayer = root->children()[0];
2259 LayerImpl* childLayer = rootScrollLayer->children()[0]; 2259 LayerImpl* childLayer = rootScrollLayer->children()[0];
2260 2260
2261 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 2261 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
2262 EXPECT_VECTOR_EQ(rootScrollLayer->scrollDelta(), gfx::Vector2d()); 2262 EXPECT_VECTOR_EQ(rootScrollLayer->scrollDelta(), gfx::Vector2d());
2263 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width()); 2263 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width());
2264 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height()); 2264 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height());
2265 EXPECT_EQ(childLayer->bounds().width() * m_deviceScaleFactor, childLayer ->contentBounds().width()); 2265 EXPECT_EQ(childLayer->bounds().width() * m_deviceScaleFactor, childLayer ->contentBounds().width());
2266 EXPECT_EQ(childLayer->bounds().height() * m_deviceScaleFactor, childLaye r->contentBounds().height()); 2266 EXPECT_EQ(childLayer->bounds().height() * m_deviceScaleFactor, childLaye r->contentBounds().height());
2267 2267
2268 switch (impl->sourceFrameNumber()) { 2268 switch (impl->activeTree()->source_frame_number()) {
2269 case 0: 2269 case 0:
2270 // Gesture scroll on impl thread. 2270 // Gesture scroll on impl thread.
2271 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted); 2271 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted);
2272 impl->scrollBy(gfx::Point(), m_scrollAmount); 2272 impl->scrollBy(gfx::Point(), m_scrollAmount);
2273 impl->scrollEnd(); 2273 impl->scrollEnd();
2274 2274
2275 EXPECT_VECTOR_EQ(m_initialScroll, childLayer->scrollOffset()); 2275 EXPECT_VECTOR_EQ(m_initialScroll, childLayer->scrollOffset());
2276 EXPECT_VECTOR_EQ(m_scrollAmount, childLayer->scrollDelta()); 2276 EXPECT_VECTOR_EQ(m_scrollAmount, childLayer->scrollDelta());
2277 break; 2277 break;
2278 case 1: 2278 case 1:
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
2393 2393
2394 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 2394 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
2395 { 2395 {
2396 LayerImpl* root = impl->rootLayer(); 2396 LayerImpl* root = impl->rootLayer();
2397 LayerImpl* rootScrollLayer = root->children()[0]; 2397 LayerImpl* rootScrollLayer = root->children()[0];
2398 2398
2399 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 2399 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
2400 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width()); 2400 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width());
2401 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height()); 2401 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height());
2402 2402
2403 switch (impl->sourceFrameNumber()) { 2403 switch (impl->activeTree()->source_frame_number()) {
2404 case 0: 2404 case 0:
2405 // Gesture scroll on impl thread. 2405 // Gesture scroll on impl thread.
2406 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted); 2406 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted);
2407 impl->scrollBy(gfx::Point(), m_scrollAmount); 2407 impl->scrollBy(gfx::Point(), m_scrollAmount);
2408 impl->scrollEnd(); 2408 impl->scrollEnd();
2409 2409
2410 EXPECT_VECTOR_EQ(m_initialScroll, rootScrollLayer->scrollOffset()); 2410 EXPECT_VECTOR_EQ(m_initialScroll, rootScrollLayer->scrollOffset());
2411 EXPECT_VECTOR_EQ(m_scrollAmount, rootScrollLayer->scrollDelta()); 2411 EXPECT_VECTOR_EQ(m_scrollAmount, rootScrollLayer->scrollDelta());
2412 break; 2412 break;
2413 case 1: 2413 case 1:
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
2559 2559
2560 postSetNeedsCommitToMainThread(); 2560 postSetNeedsCommitToMainThread();
2561 } 2561 }
2562 2562
2563 virtual void drawLayersOnThread(LayerTreeHostImpl* hostImpl) OVERRIDE 2563 virtual void drawLayersOnThread(LayerTreeHostImpl* hostImpl) OVERRIDE
2564 { 2564 {
2565 Renderer* renderer = hostImpl->renderer(); 2565 Renderer* renderer = hostImpl->renderer();
2566 RenderPass::Id surface1RenderPassId = hostImpl->rootLayer()->children()[ 0]->renderSurface()->renderPassId(); 2566 RenderPass::Id surface1RenderPassId = hostImpl->rootLayer()->children()[ 0]->renderSurface()->renderPassId();
2567 RenderPass::Id surface2RenderPassId = hostImpl->rootLayer()->children()[ 0]->children()[0]->renderSurface()->renderPassId(); 2567 RenderPass::Id surface2RenderPassId = hostImpl->rootLayer()->children()[ 0]->children()[0]->renderSurface()->renderPassId();
2568 2568
2569 switch (hostImpl->sourceFrameNumber()) { 2569 switch (hostImpl->activeTree()->source_frame_number()) {
2570 case 0: 2570 case 0:
2571 EXPECT_TRUE(renderer->haveCachedResourcesForRenderPassId(surface1Ren derPassId)); 2571 EXPECT_TRUE(renderer->haveCachedResourcesForRenderPassId(surface1Ren derPassId));
2572 EXPECT_TRUE(renderer->haveCachedResourcesForRenderPassId(surface2Ren derPassId)); 2572 EXPECT_TRUE(renderer->haveCachedResourcesForRenderPassId(surface2Ren derPassId));
2573 2573
2574 // Reduce the memory limit to only fit the root layer and one render surface. This 2574 // Reduce the memory limit to only fit the root layer and one render surface. This
2575 // prevents any contents drawing into surfaces from being allocated. 2575 // prevents any contents drawing into surfaces from being allocated.
2576 hostImpl->setManagedMemoryPolicy(ManagedMemoryPolicy(100 * 100 * 4 * 2)); 2576 hostImpl->setManagedMemoryPolicy(ManagedMemoryPolicy(100 * 100 * 4 * 2));
2577 break; 2577 break;
2578 case 1: 2578 case 1:
2579 EXPECT_FALSE(renderer->haveCachedResourcesForRenderPassId(surface1Re nderPassId)); 2579 EXPECT_FALSE(renderer->haveCachedResourcesForRenderPassId(surface1Re nderPassId));
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after
3351 LayerTreeSettings settings; 3351 LayerTreeSettings settings;
3352 settings.maxPartialTextureUpdates = 4; 3352 settings.maxPartialTextureUpdates = 4;
3353 3353
3354 scoped_ptr<LayerTreeHost> host = LayerTreeHost::create(&client, settings, sc oped_ptr<Thread>()); 3354 scoped_ptr<LayerTreeHost> host = LayerTreeHost::create(&client, settings, sc oped_ptr<Thread>());
3355 EXPECT_TRUE(host->initializeRendererIfNeeded()); 3355 EXPECT_TRUE(host->initializeRendererIfNeeded());
3356 EXPECT_EQ(4u, host->settings().maxPartialTextureUpdates); 3356 EXPECT_EQ(4u, host->settings().maxPartialTextureUpdates);
3357 } 3357 }
3358 3358
3359 } // namespace 3359 } // namespace
3360 } // namespace cc 3360 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698