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

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 1418273002: cc: Move draw params from SetExternalDrawConstraints to OnDraw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: EXPECT_SCOPED Created 5 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
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/proxy_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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 2102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2113 FROM_HERE, 2113 FROM_HERE,
2114 base::Bind( 2114 base::Bind(
2115 &LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor:: 2115 &LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor::
2116 CallOnDraw, 2116 CallOnDraw,
2117 base::Unretained(this))); 2117 base::Unretained(this)));
2118 } 2118 }
2119 2119
2120 void CallOnDraw() { 2120 void CallOnDraw() {
2121 // Synchronous compositor does not draw unless told to do so by the output 2121 // Synchronous compositor does not draw unless told to do so by the output
2122 // surface. 2122 // surface.
2123 output_surface()->client()->OnDraw(); 2123 gfx::Transform identity;
2124 gfx::Rect empty_rect;
2125 bool resourceless_software_draw = false;
2126 output_surface()->client()->OnDraw(identity, empty_rect, empty_rect,
2127 resourceless_software_draw);
2124 } 2128 }
2125 }; 2129 };
2126 2130
2127 MULTI_THREAD_TEST_F( 2131 MULTI_THREAD_TEST_F(
2128 LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor); 2132 LayerTreeHostTestAbortedCommitDoesntStallSynchronousCompositor);
2129 2133
2130 class LayerTreeHostTestAbortedCommitDoesntStallDisabledVsync 2134 class LayerTreeHostTestAbortedCommitDoesntStallDisabledVsync
2131 : public LayerTreeHostTestAbortedCommitDoesntStall { 2135 : public LayerTreeHostTestAbortedCommitDoesntStall {
2132 void InitializeSettings(LayerTreeSettings* settings) override { 2136 void InitializeSettings(LayerTreeSettings* settings) override {
2133 LayerTreeHostTestAbortedCommitDoesntStall::InitializeSettings(settings); 2137 LayerTreeHostTestAbortedCommitDoesntStall::InitializeSettings(settings);
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
2415 void AfterTest() override {} 2419 void AfterTest() override {}
2416 2420
2417 protected: 2421 protected:
2418 int frame_; 2422 int frame_;
2419 }; 2423 };
2420 2424
2421 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNumFramesPending); 2425 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNumFramesPending);
2422 2426
2423 class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest { 2427 class LayerTreeHostTestResourcelessSoftwareDraw : public LayerTreeHostTest {
2424 public: 2428 public:
2429 void InitializeSettings(LayerTreeSettings* settings) override {
2430 settings->using_synchronous_renderer_compositor = true;
2431 }
2432
2425 void SetupTree() override { 2433 void SetupTree() override {
2426 root_layer_ = FakePictureLayer::Create(layer_settings(), &client_); 2434 root_layer_ = FakePictureLayer::Create(layer_settings(), &client_);
2427 root_layer_->SetIsDrawable(true); 2435 root_layer_->SetIsDrawable(true);
2428 root_layer_->SetBounds(gfx::Size(50, 50)); 2436 root_layer_->SetBounds(gfx::Size(50, 50));
2429 2437
2430 parent_layer_ = FakePictureLayer::Create(layer_settings(), &client_); 2438 parent_layer_ = FakePictureLayer::Create(layer_settings(), &client_);
2431 parent_layer_->SetIsDrawable(true); 2439 parent_layer_->SetIsDrawable(true);
2432 parent_layer_->SetBounds(gfx::Size(50, 50)); 2440 parent_layer_->SetBounds(gfx::Size(50, 50));
2433 parent_layer_->SetForceRenderSurface(true); 2441 parent_layer_->SetForceRenderSurface(true);
2434 2442
(...skipping 17 matching lines...) Expand all
2452 return FakeOutputSurface::CreateSoftware( 2460 return FakeOutputSurface::CreateSoftware(
2453 make_scoped_ptr(new SoftwareOutputDevice)); 2461 make_scoped_ptr(new SoftwareOutputDevice));
2454 } 2462 }
2455 } 2463 }
2456 2464
2457 void BeginTest() override { 2465 void BeginTest() override {
2458 PostSetNeedsCommitToMainThread(); 2466 PostSetNeedsCommitToMainThread();
2459 swap_count_ = 0; 2467 swap_count_ = 0;
2460 } 2468 }
2461 2469
2470 void ScheduledActionInvalidateOutputSurface() override {
2471 if (TestEnded())
2472 return;
2473
2474 ImplThreadTaskRunner()->PostTask(
2475 FROM_HERE,
2476 base::Bind(&LayerTreeHostTestResourcelessSoftwareDraw::CallOnDraw,
2477 base::Unretained(this)));
2478 }
2479
2480 void CallOnDraw() {
2481 gfx::Transform identity;
2482 gfx::Rect empty_rect;
2483 bool resourceless_software_draw = true;
2484 output_surface()->client()->OnDraw(identity, empty_rect, empty_rect,
2485 resourceless_software_draw);
2486 }
2487
2462 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, 2488 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
2463 LayerTreeHostImpl::FrameData* frame_data, 2489 LayerTreeHostImpl::FrameData* frame_data,
2464 DrawResult draw_result) override { 2490 DrawResult draw_result) override {
2465 if (host_impl->GetDrawMode() == DRAW_MODE_RESOURCELESS_SOFTWARE) { 2491 if (host_impl->GetDrawMode() == DRAW_MODE_RESOURCELESS_SOFTWARE) {
2466 EXPECT_EQ(1u, frame_data->render_passes.size()); 2492 EXPECT_EQ(1u, frame_data->render_passes.size());
2467 // Has at least 3 quads for each layer. 2493 // Has at least 3 quads for each layer.
2468 RenderPass* render_pass = frame_data->render_passes[0].get(); 2494 RenderPass* render_pass = frame_data->render_passes[0].get();
2469 EXPECT_GE(render_pass->quad_list.size(), 3u); 2495 EXPECT_GE(render_pass->quad_list.size(), 3u);
2470 } else { 2496 } else {
2471 EXPECT_EQ(2u, frame_data->render_passes.size()); 2497 EXPECT_EQ(2u, frame_data->render_passes.size());
2472 2498
2473 // At least root layer quad in root render pass. 2499 // At least root layer quad in root render pass.
2474 EXPECT_GE(frame_data->render_passes[0]->quad_list.size(), 1u); 2500 EXPECT_GE(frame_data->render_passes[0]->quad_list.size(), 1u);
2475 // At least parent and child layer quads in parent render pass. 2501 // At least parent and child layer quads in parent render pass.
2476 EXPECT_GE(frame_data->render_passes[1]->quad_list.size(), 2u); 2502 EXPECT_GE(frame_data->render_passes[1]->quad_list.size(), 2u);
2477 } 2503 }
2478 return draw_result; 2504 return draw_result;
2479 } 2505 }
2480 2506
2481 void SwapBuffersCompleteOnThread(LayerTreeHostImpl* host_impl) override { 2507 void SwapBuffersCompleteOnThread(LayerTreeHostImpl* host_impl) override {
2482 swap_count_++; 2508 swap_count_++;
2483 switch (swap_count_) { 2509 switch (swap_count_) {
2484 case 1: { 2510 case 1:
2485 gfx::Transform identity;
2486 gfx::Rect empty_rect;
2487 bool resourceless_software_draw = true;
2488 host_impl->SetExternalDrawConstraints(identity, empty_rect, empty_rect,
2489 empty_rect, identity,
2490 resourceless_software_draw);
2491 host_impl->SetFullRootLayerDamage();
2492 host_impl->SetNeedsRedraw(); 2511 host_impl->SetNeedsRedraw();
2493 break; 2512 break;
2494 }
2495 case 2: 2513 case 2:
2496 EndTest(); 2514 EndTest();
2497 break; 2515 break;
2498 default: 2516 default:
2499 NOTREACHED(); 2517 NOTREACHED();
2500 } 2518 }
2501 } 2519 }
2502 2520
2503 void AfterTest() override {} 2521 void AfterTest() override {}
2504 2522
(...skipping 4040 matching lines...) Expand 10 before | Expand all | Expand 10 after
6545 EndTest(); 6563 EndTest();
6546 } 6564 }
6547 6565
6548 void AfterTest() override {} 6566 void AfterTest() override {}
6549 }; 6567 };
6550 6568
6551 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPaintedDeviceScaleFactor); 6569 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestPaintedDeviceScaleFactor);
6552 6570
6553 } // namespace 6571 } // namespace
6554 } // namespace cc 6572 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/proxy_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698