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

Side by Side Diff: cc/layer_tree_host_unittest.cc

Issue 11362054: Use message passing for BeginFrameAndCommitState and clean up forced commit logic (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix windows signed/unsigned warning Created 8 years, 1 month 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.cc ('k') | cc/scheduler.cc » ('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/graphics_context.h" 10 #include "cc/graphics_context.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 } 306 }
307 } 307 }
308 308
309 virtual void didCommit() OVERRIDE 309 virtual void didCommit() OVERRIDE
310 { 310 {
311 m_numCommits++; 311 m_numCommits++;
312 if (m_numCommits == 1) { 312 if (m_numCommits == 1) {
313 // Make the viewport empty so the host says it can't draw. 313 // Make the viewport empty so the host says it can't draw.
314 m_layerTreeHost->setViewportSize(gfx::Size(0, 0), gfx::Size(0, 0)); 314 m_layerTreeHost->setViewportSize(gfx::Size(0, 0), gfx::Size(0, 0));
315 315
316 scoped_array<char> pixels(new char[4]); 316 char pixels[4];
317 m_layerTreeHost->compositeAndReadback(static_cast<void*>(pixels.get( )), gfx::Rect(0, 0, 1, 1)); 317 m_layerTreeHost->compositeAndReadback(static_cast<void*>(&pixels), g fx::Rect(0, 0, 1, 1));
318 } else if (m_numCommits == 2) { 318 } else if (m_numCommits == 2) {
319 m_layerTreeHost->setNeedsRedraw(); 319 m_layerTreeHost->setNeedsRedraw();
320 m_layerTreeHost->setNeedsCommit(); 320 m_layerTreeHost->setNeedsCommit();
321 } else 321 } else
322 endTest(); 322 endTest();
323 } 323 }
324 324
325 virtual void afterTest() OVERRIDE 325 virtual void afterTest() OVERRIDE
326 { 326 {
327 } 327 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 postSetNeedsCommitToMainThread(); 431 postSetNeedsCommitToMainThread();
432 } 432 }
433 433
434 virtual void didCommitAndDrawFrame() OVERRIDE 434 virtual void didCommitAndDrawFrame() OVERRIDE
435 { 435 {
436 m_numCommits++; 436 m_numCommits++;
437 if (m_numCommits == 1) { 437 if (m_numCommits == 1) {
438 m_layerTreeHost->setVisible(false); 438 m_layerTreeHost->setVisible(false);
439 m_layerTreeHost->setNeedsCommit(); 439 m_layerTreeHost->setNeedsCommit();
440 m_layerTreeHost->setNeedsCommit(); 440 m_layerTreeHost->setNeedsCommit();
441 scoped_array<char> pixels(new char[4]); 441 char pixels[4];
442 m_layerTreeHost->compositeAndReadback(static_cast<void*>(pixels.get( )), gfx::Rect(0, 0, 1, 1)); 442 m_layerTreeHost->compositeAndReadback(static_cast<void*>(&pixels), g fx::Rect(0, 0, 1, 1));
443 } else 443 } else
444 endTest(); 444 endTest();
445 445
446 } 446 }
447 447
448 virtual void afterTest() OVERRIDE 448 virtual void afterTest() OVERRIDE
449 { 449 {
450 } 450 }
451 451
452 private: 452 private:
(...skipping 2010 matching lines...) Expand 10 before | Expand all | Expand 10 after
2463 } 2463 }
2464 2464
2465 class LayerTreeHostTestCompositeAndReadbackCleanup : public LayerTreeHostTest { 2465 class LayerTreeHostTestCompositeAndReadbackCleanup : public LayerTreeHostTest {
2466 public: 2466 public:
2467 LayerTreeHostTestCompositeAndReadbackCleanup() { } 2467 LayerTreeHostTestCompositeAndReadbackCleanup() { }
2468 2468
2469 virtual void beginTest() OVERRIDE 2469 virtual void beginTest() OVERRIDE
2470 { 2470 {
2471 Layer* rootLayer = m_layerTreeHost->rootLayer(); 2471 Layer* rootLayer = m_layerTreeHost->rootLayer();
2472 2472
2473 scoped_array<char> pixels(new char[4]); 2473 char pixels[4];
2474 m_layerTreeHost->compositeAndReadback(static_cast<void*>(pixels.get()), gfx::Rect(0, 0, 1, 1)); 2474 m_layerTreeHost->compositeAndReadback(static_cast<void*>(&pixels), gfx:: Rect(0, 0, 1, 1));
2475 EXPECT_FALSE(rootLayer->renderSurface()); 2475 EXPECT_FALSE(rootLayer->renderSurface());
2476 2476
2477 endTest(); 2477 endTest();
2478 } 2478 }
2479 2479
2480 virtual void afterTest() OVERRIDE 2480 virtual void afterTest() OVERRIDE
2481 { 2481 {
2482 } 2482 }
2483 }; 2483 };
2484 2484
2485 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestCompositeAndReadbackCleanup) 2485 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestCompositeAndReadbackCleanup)
2486 2486
2487 class LayerTreeHostTestCompositeAndReadbackAnimateCount : public LayerTreeHostTe st {
2488 public:
2489 LayerTreeHostTestCompositeAndReadbackAnimateCount()
2490 : m_layoutCount(0)
2491 {
2492 }
2493
2494 virtual void animate(base::TimeTicks) OVERRIDE
2495 {
2496 // We shouldn't animate on the compositeAndReadback-forced commit, but w e should
2497 // for the setNeedsCommit-triggered commit.
2498 EXPECT_EQ(1, m_layoutCount);
2499 }
2500
2501 virtual void layout() OVERRIDE
2502 {
2503 m_layoutCount++;
2504 if (m_layoutCount == 2)
2505 endTest();
2506 }
2507
2508 virtual void beginTest() OVERRIDE
2509 {
2510 m_layerTreeHost->setNeedsCommit();
2511
2512 char pixels[4];
2513 m_layerTreeHost->compositeAndReadback(&pixels, gfx::Rect(0, 0, 1, 1));
2514 }
2515
2516 virtual void afterTest() OVERRIDE
2517 {
2518 }
2519
2520 private:
2521 int m_layoutCount;
2522 };
2523
2524 TEST_F(LayerTreeHostTestCompositeAndReadbackAnimateCount, runMultiThread)
2525 {
2526 runTest(true);
2527 }
2528
2487 class LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit : public L ayerTreeHostTest { 2529 class LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit : public L ayerTreeHostTest {
2488 public: 2530 public:
2489 LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit() 2531 LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit()
2490 : m_rootLayer(ContentLayerWithUpdateTracking::create(&m_fakeDelegate)) 2532 : m_rootLayer(ContentLayerWithUpdateTracking::create(&m_fakeDelegate))
2491 , m_surfaceLayer1(ContentLayerWithUpdateTracking::create(&m_fakeDelegate )) 2533 , m_surfaceLayer1(ContentLayerWithUpdateTracking::create(&m_fakeDelegate ))
2492 , m_replicaLayer1(ContentLayerWithUpdateTracking::create(&m_fakeDelegate )) 2534 , m_replicaLayer1(ContentLayerWithUpdateTracking::create(&m_fakeDelegate ))
2493 , m_surfaceLayer2(ContentLayerWithUpdateTracking::create(&m_fakeDelegate )) 2535 , m_surfaceLayer2(ContentLayerWithUpdateTracking::create(&m_fakeDelegate ))
2494 , m_replicaLayer2(ContentLayerWithUpdateTracking::create(&m_fakeDelegate )) 2536 , m_replicaLayer2(ContentLayerWithUpdateTracking::create(&m_fakeDelegate ))
2495 { 2537 {
2496 } 2538 }
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
3216 int m_numCompleteCommits; 3258 int m_numCompleteCommits;
3217 }; 3259 };
3218 3260
3219 TEST_F(LayerTreeHostTestDeferCommits, runMultiThread) 3261 TEST_F(LayerTreeHostTestDeferCommits, runMultiThread)
3220 { 3262 {
3221 runTest(true); 3263 runTest(true);
3222 } 3264 }
3223 3265
3224 } // namespace 3266 } // namespace
3225 } // namespace cc 3267 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host.cc ('k') | cc/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698