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

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

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 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
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/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 1094 matching lines...) Expand 10 before | Expand all | Expand 10 after
1105 void SetTestLayer(Layer* test_layer) { test_layer_ = test_layer; } 1105 void SetTestLayer(Layer* test_layer) { test_layer_ = test_layer; }
1106 1106
1107 void PaintContents( 1107 void PaintContents(
1108 SkCanvas* canvas, 1108 SkCanvas* canvas,
1109 const gfx::Rect& clip, 1109 const gfx::Rect& clip,
1110 ContentLayerClient::GraphicsContextStatus gc_status) override { 1110 ContentLayerClient::GraphicsContextStatus gc_status) override {
1111 // Set layer opacity to 0. 1111 // Set layer opacity to 0.
1112 if (test_layer_) 1112 if (test_layer_)
1113 test_layer_->SetOpacity(0.f); 1113 test_layer_->SetOpacity(0.f);
1114 } 1114 }
1115 scoped_refptr<DisplayItemList> PaintContentsToDisplayList(
1116 const gfx::Rect& clip,
1117 GraphicsContextStatus gc_status) override {
1118 NOTIMPLEMENTED();
1119 return DisplayItemList::Create();
1120 }
1115 bool FillsBoundsCompletely() const override { return false; } 1121 bool FillsBoundsCompletely() const override { return false; }
1116 1122
1117 private: 1123 private:
1118 Layer* test_layer_; 1124 Layer* test_layer_;
1119 }; 1125 };
1120 1126
1121 class ContentLayerWithUpdateTracking : public ContentLayer { 1127 class ContentLayerWithUpdateTracking : public ContentLayer {
1122 public: 1128 public:
1123 static scoped_refptr<ContentLayerWithUpdateTracking> Create( 1129 static scoped_refptr<ContentLayerWithUpdateTracking> Create(
1124 ContentLayerClient* client) { 1130 ContentLayerClient* client) {
(...skipping 1189 matching lines...) Expand 10 before | Expand all | Expand 10 after
2314 int paint_count() const { return paint_count_; } 2320 int paint_count() const { return paint_count_; }
2315 2321
2316 void PaintContents( 2322 void PaintContents(
2317 SkCanvas* canvas, 2323 SkCanvas* canvas,
2318 const gfx::Rect& clip, 2324 const gfx::Rect& clip,
2319 ContentLayerClient::GraphicsContextStatus gc_status) override { 2325 ContentLayerClient::GraphicsContextStatus gc_status) override {
2320 FakeContentLayerClient::PaintContents(canvas, clip, gc_status); 2326 FakeContentLayerClient::PaintContents(canvas, clip, gc_status);
2321 ++paint_count_; 2327 ++paint_count_;
2322 } 2328 }
2323 2329
2330 scoped_refptr<DisplayItemList> PaintContentsToDisplayList(
2331 const gfx::Rect& clip,
2332 GraphicsContextStatus gc_status) override {
2333 NOTIMPLEMENTED();
2334 return DisplayItemList::Create();
2335 }
2336
2324 bool FillsBoundsCompletely() const override { return false; } 2337 bool FillsBoundsCompletely() const override { return false; }
2325 2338
2326 private: 2339 private:
2327 int paint_count_; 2340 int paint_count_;
2328 }; 2341 };
2329 2342
2330 void SetupTree() override { 2343 void SetupTree() override {
2331 num_tiles_rastered_ = 0; 2344 num_tiles_rastered_ = 0;
2332 2345
2333 scoped_refptr<Layer> root_layer; 2346 scoped_refptr<Layer> root_layer;
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
2584 2597
2585 void set_layer(Layer* layer) { layer_ = layer; } 2598 void set_layer(Layer* layer) { layer_ = layer; }
2586 2599
2587 void PaintContents( 2600 void PaintContents(
2588 SkCanvas* canvas, 2601 SkCanvas* canvas,
2589 const gfx::Rect& clip, 2602 const gfx::Rect& clip,
2590 ContentLayerClient::GraphicsContextStatus gc_status) override { 2603 ContentLayerClient::GraphicsContextStatus gc_status) override {
2591 layer_->SetBounds(gfx::Size(2, 2)); 2604 layer_->SetBounds(gfx::Size(2, 2));
2592 } 2605 }
2593 2606
2607 scoped_refptr<DisplayItemList> PaintContentsToDisplayList(
2608 const gfx::Rect& clip,
2609 GraphicsContextStatus gc_status) override {
2610 NOTIMPLEMENTED();
2611 return DisplayItemList::Create();
2612 }
2613
2594 bool FillsBoundsCompletely() const override { return false; } 2614 bool FillsBoundsCompletely() const override { return false; }
2595 2615
2596 private: 2616 private:
2597 Layer* layer_; 2617 Layer* layer_;
2598 }; 2618 };
2599 2619
2600 LayerTreeHostTestChangeLayerPropertiesInPaintContents() : num_commits_(0) {} 2620 LayerTreeHostTestChangeLayerPropertiesInPaintContents() : num_commits_(0) {}
2601 2621
2602 void SetupTree() override { 2622 void SetupTree() override {
2603 if (layer_tree_host()->settings().impl_side_painting) { 2623 if (layer_tree_host()->settings().impl_side_painting) {
(...skipping 3042 matching lines...) Expand 10 before | Expand all | Expand 10 after
5646 void InitializeSettings(LayerTreeSettings* settings) override { 5666 void InitializeSettings(LayerTreeSettings* settings) override {
5647 settings->use_one_copy = true; 5667 settings->use_one_copy = true;
5648 } 5668 }
5649 5669
5650 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface( 5670 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface(
5651 bool fallback) override { 5671 bool fallback) override {
5652 scoped_ptr<TestWebGraphicsContext3D> context3d = 5672 scoped_ptr<TestWebGraphicsContext3D> context3d =
5653 TestWebGraphicsContext3D::Create(); 5673 TestWebGraphicsContext3D::Create();
5654 context3d->set_support_image(true); 5674 context3d->set_support_image(true);
5655 context3d->set_support_sync_query(true); 5675 context3d->set_support_sync_query(true);
5676 #if defined(OS_MACOSX)
5677 context3d->set_support_texture_rectangle(true);
5678 #endif
5656 5679
5657 if (delegating_renderer()) 5680 if (delegating_renderer())
5658 return FakeOutputSurface::CreateDelegating3d(context3d.Pass()); 5681 return FakeOutputSurface::CreateDelegating3d(context3d.Pass());
5659 else 5682 else
5660 return FakeOutputSurface::Create3d(context3d.Pass()); 5683 return FakeOutputSurface::Create3d(context3d.Pass());
5661 } 5684 }
5662 }; 5685 };
5663 5686
5664 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy); 5687 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy);
5665 5688
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
5833 void AfterTest() override { EXPECT_GT(continuous_draws_, 5); } 5856 void AfterTest() override { EXPECT_GT(continuous_draws_, 5); }
5834 5857
5835 FakeContentLayerClient client_; 5858 FakeContentLayerClient client_;
5836 int step_; 5859 int step_;
5837 int continuous_draws_; 5860 int continuous_draws_;
5838 base::WaitableEvent playback_allowed_event_; 5861 base::WaitableEvent playback_allowed_event_;
5839 }; 5862 };
5840 5863
5841 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles); 5864 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles);
5842 5865
5866 class LayerTreeHostTestOneActivatePerManageTiles : public LayerTreeHostTest {
5867 public:
5868 LayerTreeHostTestOneActivatePerManageTiles()
5869 : notify_ready_to_activate_count_(0u), scheduled_manage_tiles_count_(0) {}
5870
5871 void SetupTree() override {
5872 client_.set_fill_with_nonsolid_color(true);
5873 scoped_refptr<FakePictureLayer> root_layer =
5874 FakePictureLayer::Create(&client_);
5875 root_layer->SetBounds(gfx::Size(1500, 1500));
5876 root_layer->SetIsDrawable(true);
5877
5878 layer_tree_host()->SetRootLayer(root_layer);
5879 LayerTreeHostTest::SetupTree();
5880 }
5881
5882 void BeginTest() override {
5883 layer_tree_host()->SetViewportSize(gfx::Size(16, 16));
5884 PostSetNeedsCommitToMainThread();
5885 }
5886
5887 void InitializedRendererOnThread(LayerTreeHostImpl* host_impl,
5888 bool success) override {
5889 ASSERT_TRUE(success);
5890 host_impl->tile_manager()->SetScheduledRasterTaskLimitForTesting(1);
5891 }
5892
5893 void NotifyReadyToActivateOnThread(LayerTreeHostImpl* impl) override {
5894 ++notify_ready_to_activate_count_;
5895 EndTestAfterDelayMs(100);
5896 }
5897
5898 void ScheduledActionManageTiles() override {
5899 ++scheduled_manage_tiles_count_;
5900 }
5901
5902 void AfterTest() override {
5903 // Expect at most a notification for each scheduled manage tiles, plus one
5904 // for the initial commit (which doesn't go through scheduled actions).
5905 // The reason this is not an equality is because depending on timing, we
5906 // might get a manage tiles but not yet get a notification that we're
5907 // ready to activate. The intent of a test is to ensure that we don't
5908 // get more than one notification per manage tiles, so this is OK.
5909 EXPECT_LE(notify_ready_to_activate_count_,
5910 1u + scheduled_manage_tiles_count_);
5911 }
5912
5913 protected:
5914 FakeContentLayerClient client_;
5915 size_t notify_ready_to_activate_count_;
5916 size_t scheduled_manage_tiles_count_;
5917 };
5918
5919 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerManageTiles);
5920
5843 } // namespace cc 5921 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_on_demand_raster.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698