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

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

Issue 783543003: Update from https://crrev.com/306901 (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 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 scroll_layer_->SetScrollOffset(ScrollOffsetWithDelta(offset, 1032 scroll_layer_->SetScrollOffset(ScrollOffsetWithDelta(offset,
1033 scroll_delta)); 1033 scroll_delta));
1034 layer_tree_host()->SetPageScaleFactorAndLimits(scale, 0.5f, 2.f); 1034 layer_tree_host()->SetPageScaleFactorAndLimits(scale, 0.5f, 2.f);
1035 } 1035 }
1036 1036
1037 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override { 1037 void DidActivateTreeOnThread(LayerTreeHostImpl* impl) override {
1038 // We get one commit before the first draw, and the animation doesn't happen 1038 // We get one commit before the first draw, and the animation doesn't happen
1039 // until the second draw. 1039 // until the second draw.
1040 switch (impl->active_tree()->source_frame_number()) { 1040 switch (impl->active_tree()->source_frame_number()) {
1041 case 0: 1041 case 0:
1042 EXPECT_EQ(1.f, impl->active_tree()->page_scale_factor()); 1042 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor());
1043 // We'll start an animation when we get back to the main thread. 1043 // We'll start an animation when we get back to the main thread.
1044 break; 1044 break;
1045 case 1: 1045 case 1:
1046 EXPECT_EQ(1.f, impl->active_tree()->page_scale_factor()); 1046 EXPECT_EQ(1.f, impl->active_tree()->current_page_scale_factor());
1047 break; 1047 break;
1048 case 2: 1048 case 2:
1049 EXPECT_EQ(1.25f, impl->active_tree()->page_scale_factor()); 1049 EXPECT_EQ(1.25f, impl->active_tree()->current_page_scale_factor());
1050 EndTest(); 1050 EndTest();
1051 break; 1051 break;
1052 default: 1052 default:
1053 NOTREACHED(); 1053 NOTREACHED();
1054 } 1054 }
1055 } 1055 }
1056 1056
1057 void DidCommitAndDrawFrame() override { 1057 void DidCommitAndDrawFrame() override {
1058 switch (layer_tree_host()->source_frame_number()) { 1058 switch (layer_tree_host()->source_frame_number()) {
1059 case 1: 1059 case 1:
(...skipping 4480 matching lines...) Expand 10 before | Expand all | Expand 10 after
5540 5540
5541 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 5541 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
5542 5542
5543 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, 5543 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
5544 LayerTreeHostImpl::FrameData* frame_data, 5544 LayerTreeHostImpl::FrameData* frame_data,
5545 DrawResult draw_result) override { 5545 DrawResult draw_result) override {
5546 float quad_scale_delta = FrameQuadScaleDeltaFromIdeal(frame_data); 5546 float quad_scale_delta = FrameQuadScaleDeltaFromIdeal(frame_data);
5547 switch (frame_) { 5547 switch (frame_) {
5548 case 1: 5548 case 1:
5549 // Drew at page scale 1 before any pinching. 5549 // Drew at page scale 1 before any pinching.
5550 EXPECT_EQ(1.f, host_impl->active_tree()->total_page_scale_factor()); 5550 EXPECT_EQ(1.f, host_impl->active_tree()->current_page_scale_factor());
5551 EXPECT_EQ(1.f, quad_scale_delta); 5551 EXPECT_EQ(1.f, quad_scale_delta);
5552 PostNextAfterDraw(host_impl); 5552 PostNextAfterDraw(host_impl);
5553 break; 5553 break;
5554 case 2: 5554 case 2:
5555 if (quad_scale_delta != 1.f) 5555 if (quad_scale_delta != 1.f)
5556 break; 5556 break;
5557 // Drew at page scale 1.5 after pinching in. 5557 // Drew at page scale 1.5 after pinching in.
5558 EXPECT_EQ(1.5f, host_impl->active_tree()->total_page_scale_factor()); 5558 EXPECT_EQ(1.5f, host_impl->active_tree()->current_page_scale_factor());
5559 EXPECT_EQ(1.f, quad_scale_delta); 5559 EXPECT_EQ(1.f, quad_scale_delta);
5560 PostNextAfterDraw(host_impl); 5560 PostNextAfterDraw(host_impl);
5561 break; 5561 break;
5562 case 3: 5562 case 3:
5563 // By pinching out, we will create a new tiling and raster it. This may 5563 // By pinching out, we will create a new tiling and raster it. This may
5564 // cause some additional draws, though we should still be drawing with 5564 // cause some additional draws, though we should still be drawing with
5565 // the old 1.5 tiling. 5565 // the old 1.5 tiling.
5566 if (frame_data->has_no_damage) 5566 if (frame_data->has_no_damage)
5567 break; 5567 break;
5568 // Drew at page scale 1 with the 1.5 tiling while pinching out. 5568 // Drew at page scale 1 with the 1.5 tiling while pinching out.
5569 EXPECT_EQ(1.f, host_impl->active_tree()->total_page_scale_factor()); 5569 EXPECT_EQ(1.f, host_impl->active_tree()->current_page_scale_factor());
5570 EXPECT_EQ(1.5f, quad_scale_delta); 5570 EXPECT_EQ(1.5f, quad_scale_delta);
5571 // We don't PostNextAfterDraw here, instead we wait for the new tiling 5571 // We don't PostNextAfterDraw here, instead we wait for the new tiling
5572 // to finish rastering so we don't get any noise in further steps. 5572 // to finish rastering so we don't get any noise in further steps.
5573 break; 5573 break;
5574 case 4: 5574 case 4:
5575 // Drew at page scale 1 with the 1.5 tiling after pinching out completed 5575 // Drew at page scale 1 with the 1.5 tiling after pinching out completed
5576 // while waiting for texture uploads to complete. 5576 // while waiting for texture uploads to complete.
5577 EXPECT_EQ(1.f, host_impl->active_tree()->total_page_scale_factor()); 5577 EXPECT_EQ(1.f, host_impl->active_tree()->current_page_scale_factor());
5578 // This frame will not have any damage, since it's actually the same as 5578 // This frame will not have any damage, since it's actually the same as
5579 // the last frame, and should contain no incomplete tiles. We just want 5579 // the last frame, and should contain no incomplete tiles. We just want
5580 // to make sure we drew here at least once after the pinch ended to be 5580 // to make sure we drew here at least once after the pinch ended to be
5581 // sure that drawing after pinch doesn't leave us at the wrong scale 5581 // sure that drawing after pinch doesn't leave us at the wrong scale
5582 EXPECT_TRUE(frame_data->has_no_damage); 5582 EXPECT_TRUE(frame_data->has_no_damage);
5583 PostNextAfterDraw(host_impl); 5583 PostNextAfterDraw(host_impl);
5584 break; 5584 break;
5585 case 5: 5585 case 5:
5586 if (quad_scale_delta != 1.f) 5586 if (quad_scale_delta != 1.f)
5587 break; 5587 break;
5588 // Drew at scale 1 after texture uploads are done. 5588 // Drew at scale 1 after texture uploads are done.
5589 EXPECT_EQ(1.f, host_impl->active_tree()->total_page_scale_factor()); 5589 EXPECT_EQ(1.f, host_impl->active_tree()->current_page_scale_factor());
5590 EXPECT_EQ(1.f, quad_scale_delta); 5590 EXPECT_EQ(1.f, quad_scale_delta);
5591 EndTest(); 5591 EndTest();
5592 break; 5592 break;
5593 } 5593 }
5594 return draw_result; 5594 return draw_result;
5595 } 5595 }
5596 5596
5597 void PostNextAfterDraw(LayerTreeHostImpl* host_impl) { 5597 void PostNextAfterDraw(LayerTreeHostImpl* host_impl) {
5598 if (posted_) 5598 if (posted_)
5599 return; 5599 return;
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
5750 5750
5751 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 5751 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
5752 5752
5753 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl, 5753 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
5754 LayerTreeHostImpl::FrameData* frame_data, 5754 LayerTreeHostImpl::FrameData* frame_data,
5755 DrawResult draw_result) override { 5755 DrawResult draw_result) override {
5756 float quad_scale_delta = FrameQuadScaleDeltaFromIdeal(frame_data); 5756 float quad_scale_delta = FrameQuadScaleDeltaFromIdeal(frame_data);
5757 switch (step_) { 5757 switch (step_) {
5758 case 1: 5758 case 1:
5759 // Drew at scale 1 before any pinching. 5759 // Drew at scale 1 before any pinching.
5760 EXPECT_EQ(1.f, host_impl->active_tree()->total_page_scale_factor()); 5760 EXPECT_EQ(1.f, host_impl->active_tree()->current_page_scale_factor());
5761 EXPECT_EQ(1.f, quad_scale_delta); 5761 EXPECT_EQ(1.f, quad_scale_delta);
5762 break; 5762 break;
5763 case 2: 5763 case 2:
5764 if (quad_scale_delta != 1.f / 1.5f) 5764 if (quad_scale_delta != 1.f / 1.5f)
5765 break; 5765 break;
5766 // Drew at scale 1 still though the ideal is 1.5. 5766 // Drew at scale 1 still though the ideal is 1.5.
5767 EXPECT_EQ(1.5f, host_impl->active_tree()->total_page_scale_factor()); 5767 EXPECT_EQ(1.5f, host_impl->active_tree()->current_page_scale_factor());
5768 EXPECT_EQ(1.f / 1.5f, quad_scale_delta); 5768 EXPECT_EQ(1.f / 1.5f, quad_scale_delta);
5769 break; 5769 break;
5770 case 3: 5770 case 3:
5771 // Continuous draws are attempted. 5771 // Continuous draws are attempted.
5772 EXPECT_EQ(1.5f, host_impl->active_tree()->total_page_scale_factor()); 5772 EXPECT_EQ(1.5f, host_impl->active_tree()->current_page_scale_factor());
5773 if (!frame_data->has_no_damage) 5773 if (!frame_data->has_no_damage)
5774 EXPECT_EQ(1.f / 1.5f, quad_scale_delta); 5774 EXPECT_EQ(1.f / 1.5f, quad_scale_delta);
5775 break; 5775 break;
5776 case 4: 5776 case 4:
5777 if (quad_scale_delta != 1.f) 5777 if (quad_scale_delta != 1.f)
5778 break; 5778 break;
5779 // Drew at scale 1.5 when all the tiles completed. 5779 // Drew at scale 1.5 when all the tiles completed.
5780 EXPECT_EQ(1.5f, host_impl->active_tree()->total_page_scale_factor()); 5780 EXPECT_EQ(1.5f, host_impl->active_tree()->current_page_scale_factor());
5781 EXPECT_EQ(1.f, quad_scale_delta); 5781 EXPECT_EQ(1.f, quad_scale_delta);
5782 break; 5782 break;
5783 case 5: 5783 case 5:
5784 // TODO(danakj): We get more draws before the NotifyReadyToDraw 5784 // TODO(danakj): We get more draws before the NotifyReadyToDraw
5785 // because it is asynchronous from the previous draw and happens late. 5785 // because it is asynchronous from the previous draw and happens late.
5786 break; 5786 break;
5787 case 6: 5787 case 6:
5788 // NotifyReadyToDraw happened. If we were already inside a frame, we may 5788 // NotifyReadyToDraw happened. If we were already inside a frame, we may
5789 // try to draw once more. 5789 // try to draw once more.
5790 break; 5790 break;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
5912 5912
5913 protected: 5913 protected:
5914 FakeContentLayerClient client_; 5914 FakeContentLayerClient client_;
5915 size_t notify_ready_to_activate_count_; 5915 size_t notify_ready_to_activate_count_;
5916 size_t scheduled_manage_tiles_count_; 5916 size_t scheduled_manage_tiles_count_;
5917 }; 5917 };
5918 5918
5919 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerManageTiles); 5919 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerManageTiles);
5920 5920
5921 } // namespace cc 5921 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_delegated.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698