| OLD | NEW |
| 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_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <cmath> | 10 #include <cmath> |
| (...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 EXPECT_TRUE(host_impl_->CanDraw()); | 582 EXPECT_TRUE(host_impl_->CanDraw()); |
| 583 host_impl_->SetViewportSize(gfx::Size()); | 583 host_impl_->SetViewportSize(gfx::Size()); |
| 584 EXPECT_FALSE(host_impl_->CanDraw()); | 584 EXPECT_FALSE(host_impl_->CanDraw()); |
| 585 | 585 |
| 586 FakeOutputSurface* fake_output_surface = | 586 FakeOutputSurface* fake_output_surface = |
| 587 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); | 587 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); |
| 588 EXPECT_EQ(fake_output_surface->num_sent_frames(), 0u); | 588 EXPECT_EQ(fake_output_surface->num_sent_frames(), 0u); |
| 589 gfx::Transform identity; | 589 gfx::Transform identity; |
| 590 gfx::Rect viewport(100, 100); | 590 gfx::Rect viewport(100, 100); |
| 591 const bool resourceless_software_draw = true; | 591 const bool resourceless_software_draw = true; |
| 592 host_impl_->OnDraw(identity, viewport, viewport, resourceless_software_draw); | 592 host_impl_->OnDraw(identity, viewport, resourceless_software_draw); |
| 593 ASSERT_EQ(fake_output_surface->num_sent_frames(), 1u); | 593 ASSERT_EQ(fake_output_surface->num_sent_frames(), 1u); |
| 594 EXPECT_EQ(gfx::SizeF(100.f, 100.f), | 594 EXPECT_EQ(gfx::SizeF(100.f, 100.f), |
| 595 fake_output_surface->last_sent_frame()->metadata.root_layer_size); | 595 fake_output_surface->last_sent_frame()->metadata.root_layer_size); |
| 596 } | 596 } |
| 597 | 597 |
| 598 TEST_F(LayerTreeHostImplTest, ScrollDeltaNoLayers) { | 598 TEST_F(LayerTreeHostImplTest, ScrollDeltaNoLayers) { |
| 599 ASSERT_FALSE(host_impl_->active_tree()->root_layer_for_testing()); | 599 ASSERT_FALSE(host_impl_->active_tree()->root_layer_for_testing()); |
| 600 | 600 |
| 601 std::unique_ptr<ScrollAndScaleSet> scroll_info = | 601 std::unique_ptr<ScrollAndScaleSet> scroll_info = |
| 602 host_impl_->ProcessScrollDeltas(); | 602 host_impl_->ProcessScrollDeltas(); |
| (...skipping 3184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3787 } | 3787 } |
| 3788 } | 3788 } |
| 3789 | 3789 |
| 3790 TEST_F(LayerTreeHostImplTest, | 3790 TEST_F(LayerTreeHostImplTest, |
| 3791 PrepareToDrawWhenDrawAndSwapFullViewportEveryFrame) { | 3791 PrepareToDrawWhenDrawAndSwapFullViewportEveryFrame) { |
| 3792 CreateHostImpl(DefaultSettings(), | 3792 CreateHostImpl(DefaultSettings(), |
| 3793 FakeOutputSurface::CreateDelegatingSoftware()); | 3793 FakeOutputSurface::CreateDelegatingSoftware()); |
| 3794 | 3794 |
| 3795 const gfx::Transform external_transform; | 3795 const gfx::Transform external_transform; |
| 3796 const gfx::Rect external_viewport; | 3796 const gfx::Rect external_viewport; |
| 3797 const gfx::Rect external_clip; | |
| 3798 const bool resourceless_software_draw = true; | 3797 const bool resourceless_software_draw = true; |
| 3799 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 3798 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 3800 external_transform); | 3799 external_transform); |
| 3801 | 3800 |
| 3802 std::vector<PrepareToDrawSuccessTestCase> cases; | 3801 std::vector<PrepareToDrawSuccessTestCase> cases; |
| 3803 | 3802 |
| 3804 // 0. Default case. | 3803 // 0. Default case. |
| 3805 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 3804 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); |
| 3806 // 1. Animation with missing tile. | 3805 // 1. Animation with missing tile. |
| 3807 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 3806 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); |
| 3808 cases.back().layer_between.has_missing_tile = true; | 3807 cases.back().layer_between.has_missing_tile = true; |
| 3809 cases.back().layer_between.is_animating = true; | 3808 cases.back().layer_between.is_animating = true; |
| 3810 // 2. High res required with incomplete tile. | 3809 // 2. High res required with incomplete tile. |
| 3811 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 3810 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); |
| 3812 cases.back().high_res_required = true; | 3811 cases.back().high_res_required = true; |
| 3813 cases.back().layer_between.has_incomplete_tile = true; | 3812 cases.back().layer_between.has_incomplete_tile = true; |
| 3814 // 3. High res required with missing tile. | 3813 // 3. High res required with missing tile. |
| 3815 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 3814 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); |
| 3816 cases.back().high_res_required = true; | 3815 cases.back().high_res_required = true; |
| 3817 cases.back().layer_between.has_missing_tile = true; | 3816 cases.back().layer_between.has_missing_tile = true; |
| 3818 | 3817 |
| 3819 host_impl_->active_tree()->SetRootLayerForTesting( | 3818 host_impl_->active_tree()->SetRootLayerForTesting( |
| 3820 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3819 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
| 3821 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( | 3820 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
| 3822 host_impl_->active_tree()->root_layer_for_testing()); | 3821 host_impl_->active_tree()->root_layer_for_testing()); |
| 3823 root->test_properties()->force_render_surface = true; | 3822 root->test_properties()->force_render_surface = true; |
| 3824 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 3823 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 3825 | 3824 |
| 3826 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 3825 host_impl_->OnDraw(external_transform, external_viewport, |
| 3827 resourceless_software_draw); | 3826 resourceless_software_draw); |
| 3828 | 3827 |
| 3829 for (size_t i = 0; i < cases.size(); ++i) { | 3828 for (size_t i = 0; i < cases.size(); ++i) { |
| 3830 const auto& testcase = cases[i]; | 3829 const auto& testcase = cases[i]; |
| 3831 std::vector<LayerImpl*> to_remove; | 3830 std::vector<LayerImpl*> to_remove; |
| 3832 for (auto* child : root->test_properties()->children) | 3831 for (auto* child : root->test_properties()->children) |
| 3833 to_remove.push_back(child); | 3832 to_remove.push_back(child); |
| 3834 for (auto* child : to_remove) | 3833 for (auto* child : to_remove) |
| 3835 root->test_properties()->RemoveChild(child); | 3834 root->test_properties()->RemoveChild(child); |
| 3836 | 3835 |
| 3837 std::ostringstream scope; | 3836 std::ostringstream scope; |
| 3838 scope << "Test case: " << i; | 3837 scope << "Test case: " << i; |
| 3839 SCOPED_TRACE(scope.str()); | 3838 SCOPED_TRACE(scope.str()); |
| 3840 | 3839 |
| 3841 CreateLayerFromState(root, timeline(), testcase.layer_before); | 3840 CreateLayerFromState(root, timeline(), testcase.layer_before); |
| 3842 CreateLayerFromState(root, timeline(), testcase.layer_between); | 3841 CreateLayerFromState(root, timeline(), testcase.layer_between); |
| 3843 CreateLayerFromState(root, timeline(), testcase.layer_after); | 3842 CreateLayerFromState(root, timeline(), testcase.layer_after); |
| 3844 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 3843 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 3845 | 3844 |
| 3846 if (testcase.high_res_required) | 3845 if (testcase.high_res_required) |
| 3847 host_impl_->SetRequiresHighResToDraw(); | 3846 host_impl_->SetRequiresHighResToDraw(); |
| 3848 | 3847 |
| 3849 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 3848 host_impl_->OnDraw(external_transform, external_viewport, |
| 3850 resourceless_software_draw); | 3849 resourceless_software_draw); |
| 3851 } | 3850 } |
| 3852 } | 3851 } |
| 3853 | 3852 |
| 3854 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { | 3853 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { |
| 3855 std::unique_ptr<LayerImpl> root = | 3854 std::unique_ptr<LayerImpl> root = |
| 3856 LayerImpl::Create(host_impl_->active_tree(), 1); | 3855 LayerImpl::Create(host_impl_->active_tree(), 1); |
| 3857 root->SetScrollClipLayer(Layer::INVALID_ID); | 3856 root->SetScrollClipLayer(Layer::INVALID_ID); |
| 3858 root->test_properties()->force_render_surface = true; | 3857 root->test_properties()->force_render_surface = true; |
| 3859 host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); | 3858 host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
| (...skipping 2935 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6795 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6794 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 6796 VerifyEmptyLayerRenderPasses(frame.render_passes); | 6795 VerifyEmptyLayerRenderPasses(frame.render_passes); |
| 6797 host_impl_->DidDrawAllLayers(frame); | 6796 host_impl_->DidDrawAllLayers(frame); |
| 6798 } | 6797 } |
| 6799 | 6798 |
| 6800 void TestEmptyLayerWithOnDraw() { | 6799 void TestEmptyLayerWithOnDraw() { |
| 6801 SetUpEmptylayer(); | 6800 SetUpEmptylayer(); |
| 6802 gfx::Transform identity; | 6801 gfx::Transform identity; |
| 6803 gfx::Rect viewport(viewport_size_); | 6802 gfx::Rect viewport(viewport_size_); |
| 6804 bool resourceless_software_draw = true; | 6803 bool resourceless_software_draw = true; |
| 6805 host_impl_->OnDraw(identity, viewport, viewport, | 6804 host_impl_->OnDraw(identity, viewport, resourceless_software_draw); |
| 6806 resourceless_software_draw); | |
| 6807 VerifyEmptyLayerRenderPasses(last_on_draw_render_passes_); | 6805 VerifyEmptyLayerRenderPasses(last_on_draw_render_passes_); |
| 6808 } | 6806 } |
| 6809 | 6807 |
| 6810 // Expect four surrounding gutter rects. | 6808 // Expect four surrounding gutter rects. |
| 6811 void SetUpLayerInMiddleOfViewport() { | 6809 void SetUpLayerInMiddleOfViewport() { |
| 6812 gfx::Rect layer_rect(500, 500, 200, 200); | 6810 gfx::Rect layer_rect(500, 500, 200, 200); |
| 6813 child_->SetPosition(gfx::PointF(layer_rect.origin())); | 6811 child_->SetPosition(gfx::PointF(layer_rect.origin())); |
| 6814 child_->SetBounds(layer_rect.size()); | 6812 child_->SetBounds(layer_rect.size()); |
| 6815 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 6813 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
| 6816 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 6814 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 6833 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6831 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 6834 VerifyLayerInMiddleOfViewport(frame.render_passes); | 6832 VerifyLayerInMiddleOfViewport(frame.render_passes); |
| 6835 host_impl_->DidDrawAllLayers(frame); | 6833 host_impl_->DidDrawAllLayers(frame); |
| 6836 } | 6834 } |
| 6837 | 6835 |
| 6838 void TestLayerInMiddleOfViewportWithOnDraw() { | 6836 void TestLayerInMiddleOfViewportWithOnDraw() { |
| 6839 SetUpLayerInMiddleOfViewport(); | 6837 SetUpLayerInMiddleOfViewport(); |
| 6840 gfx::Transform identity; | 6838 gfx::Transform identity; |
| 6841 gfx::Rect viewport(viewport_size_); | 6839 gfx::Rect viewport(viewport_size_); |
| 6842 bool resourceless_software_draw = true; | 6840 bool resourceless_software_draw = true; |
| 6843 host_impl_->OnDraw(identity, viewport, viewport, | 6841 host_impl_->OnDraw(identity, viewport, resourceless_software_draw); |
| 6844 resourceless_software_draw); | |
| 6845 VerifyLayerInMiddleOfViewport(last_on_draw_render_passes_); | 6842 VerifyLayerInMiddleOfViewport(last_on_draw_render_passes_); |
| 6846 } | 6843 } |
| 6847 | 6844 |
| 6848 // Expect no gutter rects. | 6845 // Expect no gutter rects. |
| 6849 void SetUpLayerIsLargerThanViewport() { | 6846 void SetUpLayerIsLargerThanViewport() { |
| 6850 gfx::Rect layer_rect(viewport_size_.width() + 10, | 6847 gfx::Rect layer_rect(viewport_size_.width() + 10, |
| 6851 viewport_size_.height() + 10); | 6848 viewport_size_.height() + 10); |
| 6852 child_->SetPosition(gfx::PointF(layer_rect.origin())); | 6849 child_->SetPosition(gfx::PointF(layer_rect.origin())); |
| 6853 child_->SetBounds(layer_rect.size()); | 6850 child_->SetBounds(layer_rect.size()); |
| 6854 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 6851 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 6870 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6867 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 6871 VerifyLayerIsLargerThanViewport(frame.render_passes); | 6868 VerifyLayerIsLargerThanViewport(frame.render_passes); |
| 6872 host_impl_->DidDrawAllLayers(frame); | 6869 host_impl_->DidDrawAllLayers(frame); |
| 6873 } | 6870 } |
| 6874 | 6871 |
| 6875 void TestLayerIsLargerThanViewportWithOnDraw() { | 6872 void TestLayerIsLargerThanViewportWithOnDraw() { |
| 6876 SetUpLayerIsLargerThanViewport(); | 6873 SetUpLayerIsLargerThanViewport(); |
| 6877 gfx::Transform identity; | 6874 gfx::Transform identity; |
| 6878 gfx::Rect viewport(viewport_size_); | 6875 gfx::Rect viewport(viewport_size_); |
| 6879 bool resourceless_software_draw = true; | 6876 bool resourceless_software_draw = true; |
| 6880 host_impl_->OnDraw(identity, viewport, viewport, | 6877 host_impl_->OnDraw(identity, viewport, resourceless_software_draw); |
| 6881 resourceless_software_draw); | |
| 6882 VerifyLayerIsLargerThanViewport(last_on_draw_render_passes_); | 6878 VerifyLayerIsLargerThanViewport(last_on_draw_render_passes_); |
| 6883 } | 6879 } |
| 6884 | 6880 |
| 6885 void DidActivateSyncTree() override { did_activate_pending_tree_ = true; } | 6881 void DidActivateSyncTree() override { did_activate_pending_tree_ = true; } |
| 6886 | 6882 |
| 6887 void set_gutter_quad_material(DrawQuad::Material material) { | 6883 void set_gutter_quad_material(DrawQuad::Material material) { |
| 6888 gutter_quad_material_ = material; | 6884 gutter_quad_material_ = material; |
| 6889 } | 6885 } |
| 6890 void set_gutter_texture_size(const gfx::Size& gutter_texture_size) { | 6886 void set_gutter_texture_size(const gfx::Size& gutter_texture_size) { |
| 6891 gutter_texture_size_ = gutter_texture_size; | 6887 gutter_texture_size_ = gutter_texture_size; |
| (...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7602 }; | 7598 }; |
| 7603 | 7599 |
| 7604 TEST_F(LayerTreeHostImplTest, | 7600 TEST_F(LayerTreeHostImplTest, |
| 7605 ForcedDrawToSoftwareDeviceSkipsUnsupportedLayers) { | 7601 ForcedDrawToSoftwareDeviceSkipsUnsupportedLayers) { |
| 7606 set_reduce_memory_result(false); | 7602 set_reduce_memory_result(false); |
| 7607 EXPECT_TRUE(CreateHostImpl(DefaultSettings(), | 7603 EXPECT_TRUE(CreateHostImpl(DefaultSettings(), |
| 7608 FakeOutputSurface::CreateDelegatingSoftware())); | 7604 FakeOutputSurface::CreateDelegatingSoftware())); |
| 7609 | 7605 |
| 7610 const gfx::Transform external_transform; | 7606 const gfx::Transform external_transform; |
| 7611 const gfx::Rect external_viewport; | 7607 const gfx::Rect external_viewport; |
| 7612 const gfx::Rect external_clip; | |
| 7613 const bool resourceless_software_draw = true; | 7608 const bool resourceless_software_draw = true; |
| 7614 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 7609 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 7615 external_transform); | 7610 external_transform); |
| 7616 | 7611 |
| 7617 // SolidColorLayerImpl will be drawn. | 7612 // SolidColorLayerImpl will be drawn. |
| 7618 std::unique_ptr<SolidColorLayerImpl> root_layer = | 7613 std::unique_ptr<SolidColorLayerImpl> root_layer = |
| 7619 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 7614 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); |
| 7620 | 7615 |
| 7621 // VideoLayerImpl will not be drawn. | 7616 // VideoLayerImpl will not be drawn. |
| 7622 FakeVideoFrameProvider provider; | 7617 FakeVideoFrameProvider provider; |
| 7623 std::unique_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( | 7618 std::unique_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( |
| 7624 host_impl_->active_tree(), 2, &provider, media::VIDEO_ROTATION_0); | 7619 host_impl_->active_tree(), 2, &provider, media::VIDEO_ROTATION_0); |
| 7625 video_layer->SetBounds(gfx::Size(10, 10)); | 7620 video_layer->SetBounds(gfx::Size(10, 10)); |
| 7626 video_layer->SetDrawsContent(true); | 7621 video_layer->SetDrawsContent(true); |
| 7627 root_layer->test_properties()->AddChild(std::move(video_layer)); | 7622 root_layer->test_properties()->AddChild(std::move(video_layer)); |
| 7628 SetupRootLayerImpl(std::move(root_layer)); | 7623 SetupRootLayerImpl(std::move(root_layer)); |
| 7629 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 7624 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 7630 | 7625 |
| 7631 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 7626 host_impl_->OnDraw(external_transform, external_viewport, |
| 7632 resourceless_software_draw); | 7627 resourceless_software_draw); |
| 7633 | 7628 |
| 7634 EXPECT_EQ(1u, last_on_draw_frame_->will_draw_layers.size()); | 7629 EXPECT_EQ(1u, last_on_draw_frame_->will_draw_layers.size()); |
| 7635 EXPECT_EQ(host_impl_->active_tree()->root_layer_for_testing(), | 7630 EXPECT_EQ(host_impl_->active_tree()->root_layer_for_testing(), |
| 7636 last_on_draw_frame_->will_draw_layers[0]); | 7631 last_on_draw_frame_->will_draw_layers[0]); |
| 7637 } | 7632 } |
| 7638 | 7633 |
| 7639 // Checks that we have a non-0 default allocation if we pass a context that | 7634 // Checks that we have a non-0 default allocation if we pass a context that |
| 7640 // doesn't support memory management extensions. | 7635 // doesn't support memory management extensions. |
| 7641 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) { | 7636 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) { |
| (...skipping 1679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9321 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes, | 9316 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes, |
| 9322 300u * 1024u * 1024u); | 9317 300u * 1024u * 1024u); |
| 9323 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, | 9318 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, |
| 9324 150u * 1024u * 1024u); | 9319 150u * 1024u * 1024u); |
| 9325 } | 9320 } |
| 9326 | 9321 |
| 9327 TEST_F(LayerTreeHostImplTest, ExternalTransformReflectedInNextDraw) { | 9322 TEST_F(LayerTreeHostImplTest, ExternalTransformReflectedInNextDraw) { |
| 9328 const gfx::Size layer_size(100, 100); | 9323 const gfx::Size layer_size(100, 100); |
| 9329 gfx::Transform external_transform; | 9324 gfx::Transform external_transform; |
| 9330 const gfx::Rect external_viewport(layer_size); | 9325 const gfx::Rect external_viewport(layer_size); |
| 9331 const gfx::Rect external_clip(layer_size); | |
| 9332 const bool resourceless_software_draw = false; | 9326 const bool resourceless_software_draw = false; |
| 9333 LayerImpl* layer = SetupScrollAndContentsLayers(layer_size); | 9327 LayerImpl* layer = SetupScrollAndContentsLayers(layer_size); |
| 9334 layer->SetDrawsContent(true); | 9328 layer->SetDrawsContent(true); |
| 9335 | 9329 |
| 9336 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9330 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9337 external_transform); | 9331 external_transform); |
| 9338 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9332 host_impl_->OnDraw(external_transform, external_viewport, |
| 9339 resourceless_software_draw); | 9333 resourceless_software_draw); |
| 9340 EXPECT_TRANSFORMATION_MATRIX_EQ( | 9334 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 9341 external_transform, layer->draw_properties().target_space_transform); | 9335 external_transform, layer->draw_properties().target_space_transform); |
| 9342 | 9336 |
| 9343 external_transform.Translate(20, 20); | 9337 external_transform.Translate(20, 20); |
| 9344 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9338 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9345 external_transform); | 9339 external_transform); |
| 9346 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9340 host_impl_->OnDraw(external_transform, external_viewport, |
| 9347 resourceless_software_draw); | 9341 resourceless_software_draw); |
| 9348 EXPECT_TRANSFORMATION_MATRIX_EQ( | 9342 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 9349 external_transform, layer->draw_properties().target_space_transform); | 9343 external_transform, layer->draw_properties().target_space_transform); |
| 9350 } | 9344 } |
| 9351 | 9345 |
| 9352 TEST_F(LayerTreeHostImplTest, ExternalTransformSetNeedsRedraw) { | 9346 TEST_F(LayerTreeHostImplTest, ExternalTransformSetNeedsRedraw) { |
| 9353 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); | 9347 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
| 9354 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 9348 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 9355 | 9349 |
| 9356 const gfx::Size viewport_size(100, 100); | 9350 const gfx::Size viewport_size(100, 100); |
| 9357 host_impl_->SetViewportSize(viewport_size); | 9351 host_impl_->SetViewportSize(viewport_size); |
| 9358 | 9352 |
| 9359 const gfx::Transform transform_for_tile_priority; | 9353 const gfx::Transform transform_for_tile_priority; |
| 9360 const gfx::Transform draw_transform; | 9354 const gfx::Transform draw_transform; |
| 9361 const gfx::Rect viewport_for_tile_priority1(viewport_size); | 9355 const gfx::Rect viewport_for_tile_priority1(viewport_size); |
| 9362 const gfx::Rect viewport_for_tile_priority2(50, 50); | 9356 const gfx::Rect viewport_for_tile_priority2(50, 50); |
| 9363 const gfx::Rect draw_viewport(viewport_size); | 9357 const gfx::Rect draw_viewport(viewport_size); |
| 9364 const gfx::Rect clip(viewport_size); | |
| 9365 bool resourceless_software_draw = false; | 9358 bool resourceless_software_draw = false; |
| 9366 | 9359 |
| 9367 // Clear any damage. | 9360 // Clear any damage. |
| 9368 host_impl_->SetExternalTilePriorityConstraints(viewport_for_tile_priority1, | 9361 host_impl_->SetExternalTilePriorityConstraints(viewport_for_tile_priority1, |
| 9369 transform_for_tile_priority); | 9362 transform_for_tile_priority); |
| 9370 host_impl_->OnDraw(draw_transform, draw_viewport, clip, | 9363 host_impl_->OnDraw(draw_transform, draw_viewport, resourceless_software_draw); |
| 9371 resourceless_software_draw); | |
| 9372 last_on_draw_frame_.reset(); | 9364 last_on_draw_frame_.reset(); |
| 9373 | 9365 |
| 9374 // Setting new constraints needs redraw. | 9366 // Setting new constraints needs redraw. |
| 9375 did_request_redraw_ = false; | 9367 did_request_redraw_ = false; |
| 9376 host_impl_->SetExternalTilePriorityConstraints(viewport_for_tile_priority2, | 9368 host_impl_->SetExternalTilePriorityConstraints(viewport_for_tile_priority2, |
| 9377 transform_for_tile_priority); | 9369 transform_for_tile_priority); |
| 9378 EXPECT_TRUE(did_request_redraw_); | 9370 EXPECT_TRUE(did_request_redraw_); |
| 9379 host_impl_->OnDraw(draw_transform, draw_viewport, clip, | 9371 host_impl_->OnDraw(draw_transform, draw_viewport, resourceless_software_draw); |
| 9380 resourceless_software_draw); | |
| 9381 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); | 9372 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); |
| 9382 } | 9373 } |
| 9383 | 9374 |
| 9384 TEST_F(LayerTreeHostImplTest, OnDrawConstraintSetNeedsRedraw) { | 9375 TEST_F(LayerTreeHostImplTest, OnDrawConstraintSetNeedsRedraw) { |
| 9385 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); | 9376 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
| 9386 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 9377 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 9387 | 9378 |
| 9388 const gfx::Size viewport_size(100, 100); | 9379 const gfx::Size viewport_size(100, 100); |
| 9389 host_impl_->SetViewportSize(viewport_size); | 9380 host_impl_->SetViewportSize(viewport_size); |
| 9390 | 9381 |
| 9391 const gfx::Transform draw_transform; | 9382 const gfx::Transform draw_transform; |
| 9392 const gfx::Rect draw_viewport1(viewport_size); | 9383 const gfx::Rect draw_viewport1(viewport_size); |
| 9393 const gfx::Rect draw_viewport2(50, 50); | 9384 const gfx::Rect draw_viewport2(50, 50); |
| 9394 const gfx::Rect clip(viewport_size); | |
| 9395 bool resourceless_software_draw = false; | 9385 bool resourceless_software_draw = false; |
| 9396 | 9386 |
| 9397 // Clear any damage. | 9387 // Clear any damage. |
| 9398 host_impl_->OnDraw(draw_transform, draw_viewport1, clip, | 9388 host_impl_->OnDraw(draw_transform, draw_viewport1, |
| 9399 resourceless_software_draw); | 9389 resourceless_software_draw); |
| 9400 last_on_draw_frame_.reset(); | 9390 last_on_draw_frame_.reset(); |
| 9401 | 9391 |
| 9402 // Same draw params does not swap. | 9392 // Same draw params does not swap. |
| 9403 did_request_redraw_ = false; | 9393 did_request_redraw_ = false; |
| 9404 host_impl_->OnDraw(draw_transform, draw_viewport1, clip, | 9394 host_impl_->OnDraw(draw_transform, draw_viewport1, |
| 9405 resourceless_software_draw); | 9395 resourceless_software_draw); |
| 9406 EXPECT_FALSE(did_request_redraw_); | 9396 EXPECT_FALSE(did_request_redraw_); |
| 9407 EXPECT_TRUE(last_on_draw_frame_->has_no_damage); | 9397 EXPECT_TRUE(last_on_draw_frame_->has_no_damage); |
| 9408 last_on_draw_frame_.reset(); | 9398 last_on_draw_frame_.reset(); |
| 9409 | 9399 |
| 9410 // Different draw params does swap. | 9400 // Different draw params does swap. |
| 9411 did_request_redraw_ = false; | 9401 did_request_redraw_ = false; |
| 9412 host_impl_->OnDraw(draw_transform, draw_viewport2, clip, | 9402 host_impl_->OnDraw(draw_transform, draw_viewport2, |
| 9413 resourceless_software_draw); | 9403 resourceless_software_draw); |
| 9414 EXPECT_TRUE(did_request_redraw_); | 9404 EXPECT_TRUE(did_request_redraw_); |
| 9415 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); | 9405 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); |
| 9416 } | 9406 } |
| 9417 | 9407 |
| 9418 class ResourcelessSoftwareLayerTreeHostImplTest : public LayerTreeHostImplTest { | 9408 class ResourcelessSoftwareLayerTreeHostImplTest : public LayerTreeHostImplTest { |
| 9419 protected: | 9409 protected: |
| 9420 std::unique_ptr<OutputSurface> CreateOutputSurface() override { | 9410 std::unique_ptr<OutputSurface> CreateOutputSurface() override { |
| 9421 return FakeOutputSurface::CreateDelegating3d(); | 9411 return FakeOutputSurface::CreateDelegating3d(); |
| 9422 } | 9412 } |
| 9423 }; | 9413 }; |
| 9424 | 9414 |
| 9425 TEST_F(ResourcelessSoftwareLayerTreeHostImplTest, | 9415 TEST_F(ResourcelessSoftwareLayerTreeHostImplTest, |
| 9426 ResourcelessSoftwareSetNeedsRedraw) { | 9416 ResourcelessSoftwareSetNeedsRedraw) { |
| 9427 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); | 9417 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
| 9428 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 9418 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 9429 | 9419 |
| 9430 const gfx::Size viewport_size(100, 100); | 9420 const gfx::Size viewport_size(100, 100); |
| 9431 host_impl_->SetViewportSize(viewport_size); | 9421 host_impl_->SetViewportSize(viewport_size); |
| 9432 | 9422 |
| 9433 const gfx::Transform draw_transform; | 9423 const gfx::Transform draw_transform; |
| 9434 const gfx::Rect draw_viewport(viewport_size); | 9424 const gfx::Rect draw_viewport(viewport_size); |
| 9435 const gfx::Rect clip(viewport_size); | |
| 9436 bool resourceless_software_draw = false; | 9425 bool resourceless_software_draw = false; |
| 9437 | 9426 |
| 9438 // Clear any damage. | 9427 // Clear any damage. |
| 9439 host_impl_->OnDraw(draw_transform, draw_viewport, clip, | 9428 host_impl_->OnDraw(draw_transform, draw_viewport, resourceless_software_draw); |
| 9440 resourceless_software_draw); | |
| 9441 last_on_draw_frame_.reset(); | 9429 last_on_draw_frame_.reset(); |
| 9442 | 9430 |
| 9443 // Always swap even if same draw params. | 9431 // Always swap even if same draw params. |
| 9444 resourceless_software_draw = true; | 9432 resourceless_software_draw = true; |
| 9445 host_impl_->OnDraw(draw_transform, draw_viewport, clip, | 9433 host_impl_->OnDraw(draw_transform, draw_viewport, resourceless_software_draw); |
| 9446 resourceless_software_draw); | |
| 9447 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); | 9434 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); |
| 9448 last_on_draw_frame_.reset(); | 9435 last_on_draw_frame_.reset(); |
| 9449 | 9436 |
| 9450 // Next hardware draw has damage. | 9437 // Next hardware draw has damage. |
| 9451 resourceless_software_draw = false; | 9438 resourceless_software_draw = false; |
| 9452 host_impl_->OnDraw(draw_transform, draw_viewport, clip, | 9439 host_impl_->OnDraw(draw_transform, draw_viewport, resourceless_software_draw); |
| 9453 resourceless_software_draw); | |
| 9454 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); | 9440 EXPECT_FALSE(last_on_draw_frame_->has_no_damage); |
| 9455 } | 9441 } |
| 9456 | 9442 |
| 9457 TEST_F(ResourcelessSoftwareLayerTreeHostImplTest, | 9443 TEST_F(ResourcelessSoftwareLayerTreeHostImplTest, |
| 9458 ResourcelessSoftwareDrawSkipsUpdateTiles) { | 9444 ResourcelessSoftwareDrawSkipsUpdateTiles) { |
| 9459 const gfx::Size viewport_size(100, 100); | 9445 const gfx::Size viewport_size(100, 100); |
| 9460 host_impl_->SetViewportSize(viewport_size); | 9446 host_impl_->SetViewportSize(viewport_size); |
| 9461 | 9447 |
| 9462 host_impl_->CreatePendingTree(); | 9448 host_impl_->CreatePendingTree(); |
| 9463 scoped_refptr<FakeRasterSource> raster_source( | 9449 scoped_refptr<FakeRasterSource> raster_source( |
| 9464 FakeRasterSource::CreateFilled(viewport_size)); | 9450 FakeRasterSource::CreateFilled(viewport_size)); |
| 9465 std::unique_ptr<FakePictureLayerImpl> layer( | 9451 std::unique_ptr<FakePictureLayerImpl> layer( |
| 9466 FakePictureLayerImpl::CreateWithRasterSource(host_impl_->pending_tree(), | 9452 FakePictureLayerImpl::CreateWithRasterSource(host_impl_->pending_tree(), |
| 9467 11, raster_source)); | 9453 11, raster_source)); |
| 9468 layer->SetBounds(viewport_size); | 9454 layer->SetBounds(viewport_size); |
| 9469 layer->SetDrawsContent(true); | 9455 layer->SetDrawsContent(true); |
| 9470 host_impl_->pending_tree()->SetRootLayerForTesting(std::move(layer)); | 9456 host_impl_->pending_tree()->SetRootLayerForTesting(std::move(layer)); |
| 9471 | 9457 |
| 9472 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); | 9458 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); |
| 9473 host_impl_->ActivateSyncTree(); | 9459 host_impl_->ActivateSyncTree(); |
| 9474 | 9460 |
| 9475 const gfx::Transform draw_transform; | 9461 const gfx::Transform draw_transform; |
| 9476 const gfx::Rect draw_viewport(viewport_size); | 9462 const gfx::Rect draw_viewport(viewport_size); |
| 9477 const gfx::Rect clip(viewport_size); | |
| 9478 bool resourceless_software_draw = false; | 9463 bool resourceless_software_draw = false; |
| 9479 | 9464 |
| 9480 // Regular draw causes UpdateTiles. | 9465 // Regular draw causes UpdateTiles. |
| 9481 did_request_prepare_tiles_ = false; | 9466 did_request_prepare_tiles_ = false; |
| 9482 host_impl_->OnDraw(draw_transform, draw_viewport, clip, | 9467 host_impl_->OnDraw(draw_transform, draw_viewport, resourceless_software_draw); |
| 9483 resourceless_software_draw); | |
| 9484 EXPECT_TRUE(did_request_prepare_tiles_); | 9468 EXPECT_TRUE(did_request_prepare_tiles_); |
| 9485 host_impl_->PrepareTiles(); | 9469 host_impl_->PrepareTiles(); |
| 9486 | 9470 |
| 9487 // Resourceless draw skips UpdateTiles. | 9471 // Resourceless draw skips UpdateTiles. |
| 9488 const gfx::Rect new_draw_viewport(50, 50); | 9472 const gfx::Rect new_draw_viewport(50, 50); |
| 9489 resourceless_software_draw = true; | 9473 resourceless_software_draw = true; |
| 9490 did_request_prepare_tiles_ = false; | 9474 did_request_prepare_tiles_ = false; |
| 9491 host_impl_->OnDraw(draw_transform, new_draw_viewport, clip, | 9475 host_impl_->OnDraw(draw_transform, new_draw_viewport, |
| 9492 resourceless_software_draw); | 9476 resourceless_software_draw); |
| 9493 EXPECT_FALSE(did_request_prepare_tiles_); | 9477 EXPECT_FALSE(did_request_prepare_tiles_); |
| 9494 } | 9478 } |
| 9495 | 9479 |
| 9496 TEST_F(LayerTreeHostImplTest, ExternalTileConstraintReflectedInPendingTree) { | 9480 TEST_F(LayerTreeHostImplTest, ExternalTileConstraintReflectedInPendingTree) { |
| 9497 EXPECT_FALSE(host_impl_->CommitToActiveTree()); | 9481 EXPECT_FALSE(host_impl_->CommitToActiveTree()); |
| 9498 const gfx::Size layer_size(100, 100); | 9482 const gfx::Size layer_size(100, 100); |
| 9499 host_impl_->SetViewportSize(layer_size); | 9483 host_impl_->SetViewportSize(layer_size); |
| 9500 bool update_lcd_text = false; | 9484 bool update_lcd_text = false; |
| 9501 | 9485 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9536 ->children[0]; | 9520 ->children[0]; |
| 9537 | 9521 |
| 9538 bool update_lcd_text = false; | 9522 bool update_lcd_text = false; |
| 9539 | 9523 |
| 9540 host_impl_->SetViewportSize(gfx::Size(90, 90)); | 9524 host_impl_->SetViewportSize(gfx::Size(90, 90)); |
| 9541 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); | 9525 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); |
| 9542 EXPECT_EQ(gfx::Rect(90, 90), content_layer->visible_layer_rect()); | 9526 EXPECT_EQ(gfx::Rect(90, 90), content_layer->visible_layer_rect()); |
| 9543 | 9527 |
| 9544 gfx::Transform external_transform; | 9528 gfx::Transform external_transform; |
| 9545 gfx::Rect external_viewport(10, 20); | 9529 gfx::Rect external_viewport(10, 20); |
| 9546 gfx::Rect external_clip(layer_size); | |
| 9547 bool resourceless_software_draw = false; | 9530 bool resourceless_software_draw = false; |
| 9548 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9531 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9549 external_transform); | 9532 external_transform); |
| 9550 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9533 host_impl_->OnDraw(external_transform, external_viewport, |
| 9551 resourceless_software_draw); | 9534 resourceless_software_draw); |
| 9552 EXPECT_EQ(gfx::Rect(10, 20), content_layer->visible_layer_rect()); | 9535 EXPECT_EQ(gfx::Rect(10, 20), content_layer->visible_layer_rect()); |
| 9553 | 9536 |
| 9554 // Clear the external viewport. | 9537 // Clear the external viewport. |
| 9555 external_viewport = gfx::Rect(); | 9538 external_viewport = gfx::Rect(); |
| 9556 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9539 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9557 external_transform); | 9540 external_transform); |
| 9558 | 9541 |
| 9559 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9542 host_impl_->OnDraw(external_transform, external_viewport, |
| 9560 resourceless_software_draw); | 9543 resourceless_software_draw); |
| 9561 EXPECT_EQ(gfx::Rect(90, 90), content_layer->visible_layer_rect()); | 9544 EXPECT_EQ(gfx::Rect(90, 90), content_layer->visible_layer_rect()); |
| 9562 } | 9545 } |
| 9563 | 9546 |
| 9564 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsVisibleRects) { | 9547 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsVisibleRects) { |
| 9565 const gfx::Size layer_size(100, 100); | 9548 const gfx::Size layer_size(100, 100); |
| 9566 SetupScrollAndContentsLayers(layer_size); | 9549 SetupScrollAndContentsLayers(layer_size); |
| 9567 LayerImpl* content_layer = host_impl_->active_tree() | 9550 LayerImpl* content_layer = host_impl_->active_tree() |
| 9568 ->OuterViewportScrollLayer() | 9551 ->OuterViewportScrollLayer() |
| 9569 ->test_properties() | 9552 ->test_properties() |
| 9570 ->children[0]; | 9553 ->children[0]; |
| 9571 | 9554 |
| 9572 bool update_lcd_text = false; | 9555 bool update_lcd_text = false; |
| 9573 | 9556 |
| 9574 host_impl_->SetViewportSize(gfx::Size(50, 50)); | 9557 host_impl_->SetViewportSize(gfx::Size(50, 50)); |
| 9575 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); | 9558 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); |
| 9576 EXPECT_EQ(gfx::Rect(50, 50), content_layer->visible_layer_rect()); | 9559 EXPECT_EQ(gfx::Rect(50, 50), content_layer->visible_layer_rect()); |
| 9577 | 9560 |
| 9578 gfx::Transform external_transform; | 9561 gfx::Transform external_transform; |
| 9579 external_transform.Translate(10, 10); | 9562 external_transform.Translate(10, 10); |
| 9580 external_transform.Scale(2, 2); | 9563 external_transform.Scale(2, 2); |
| 9581 gfx::Rect external_viewport; | 9564 gfx::Rect external_viewport; |
| 9582 gfx::Rect external_clip(layer_size); | |
| 9583 bool resourceless_software_draw = false; | 9565 bool resourceless_software_draw = false; |
| 9584 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9566 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9585 external_transform); | 9567 external_transform); |
| 9586 | 9568 |
| 9587 // Visible rects should now be shifted and scaled because of the external | 9569 // Visible rects should now be shifted and scaled because of the external |
| 9588 // transform. | 9570 // transform. |
| 9589 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9571 host_impl_->OnDraw(external_transform, external_viewport, |
| 9590 resourceless_software_draw); | 9572 resourceless_software_draw); |
| 9591 EXPECT_EQ(gfx::Rect(20, 20), content_layer->visible_layer_rect()); | 9573 EXPECT_EQ(gfx::Rect(20, 20), content_layer->visible_layer_rect()); |
| 9592 | 9574 |
| 9593 // Clear the external transform. | 9575 // Clear the external transform. |
| 9594 external_transform = gfx::Transform(); | 9576 external_transform = gfx::Transform(); |
| 9595 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9577 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9596 external_transform); | 9578 external_transform); |
| 9597 | 9579 |
| 9598 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9580 host_impl_->OnDraw(external_transform, external_viewport, |
| 9599 resourceless_software_draw); | 9581 resourceless_software_draw); |
| 9600 EXPECT_EQ(gfx::Rect(50, 50), content_layer->visible_layer_rect()); | 9582 EXPECT_EQ(gfx::Rect(50, 50), content_layer->visible_layer_rect()); |
| 9601 } | 9583 } |
| 9602 | 9584 |
| 9603 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) { | 9585 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) { |
| 9604 const gfx::Size layer_size(100, 100); | 9586 const gfx::Size layer_size(100, 100); |
| 9605 SetupScrollAndContentsLayers(layer_size); | 9587 SetupScrollAndContentsLayers(layer_size); |
| 9606 LayerImpl* content_layer = host_impl_->active_tree() | 9588 LayerImpl* content_layer = host_impl_->active_tree() |
| 9607 ->OuterViewportScrollLayer() | 9589 ->OuterViewportScrollLayer() |
| 9608 ->test_properties() | 9590 ->test_properties() |
| (...skipping 15 matching lines...) Expand all Loading... |
| 9624 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); | 9606 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); |
| 9625 TransformNode* node = | 9607 TransformNode* node = |
| 9626 host_impl_->active_tree()->property_trees()->transform_tree.Node( | 9608 host_impl_->active_tree()->property_trees()->transform_tree.Node( |
| 9627 test_layer->transform_tree_index()); | 9609 test_layer->transform_tree_index()); |
| 9628 EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(1.f, 1.f)); | 9610 EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(1.f, 1.f)); |
| 9629 | 9611 |
| 9630 gfx::Transform external_transform; | 9612 gfx::Transform external_transform; |
| 9631 external_transform.Translate(10, 10); | 9613 external_transform.Translate(10, 10); |
| 9632 external_transform.Scale(2, 2); | 9614 external_transform.Scale(2, 2); |
| 9633 gfx::Rect external_viewport; | 9615 gfx::Rect external_viewport; |
| 9634 gfx::Rect external_clip(layer_size); | |
| 9635 bool resourceless_software_draw = false; | 9616 bool resourceless_software_draw = false; |
| 9636 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9617 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9637 external_transform); | 9618 external_transform); |
| 9638 | 9619 |
| 9639 // Transform node's sublayer scale should include the device transform scale. | 9620 // Transform node's sublayer scale should include the device transform scale. |
| 9640 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9621 host_impl_->OnDraw(external_transform, external_viewport, |
| 9641 resourceless_software_draw); | 9622 resourceless_software_draw); |
| 9642 node = host_impl_->active_tree()->property_trees()->transform_tree.Node( | 9623 node = host_impl_->active_tree()->property_trees()->transform_tree.Node( |
| 9643 test_layer->transform_tree_index()); | 9624 test_layer->transform_tree_index()); |
| 9644 EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(2.f, 2.f)); | 9625 EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(2.f, 2.f)); |
| 9645 | 9626 |
| 9646 // Clear the external transform. | 9627 // Clear the external transform. |
| 9647 external_transform = gfx::Transform(); | 9628 external_transform = gfx::Transform(); |
| 9648 host_impl_->SetExternalTilePriorityConstraints(external_viewport, | 9629 host_impl_->SetExternalTilePriorityConstraints(external_viewport, |
| 9649 external_transform); | 9630 external_transform); |
| 9650 | 9631 |
| 9651 host_impl_->OnDraw(external_transform, external_viewport, external_clip, | 9632 host_impl_->OnDraw(external_transform, external_viewport, |
| 9652 resourceless_software_draw); | 9633 resourceless_software_draw); |
| 9653 node = host_impl_->active_tree()->property_trees()->transform_tree.Node( | 9634 node = host_impl_->active_tree()->property_trees()->transform_tree.Node( |
| 9654 test_layer->transform_tree_index()); | 9635 test_layer->transform_tree_index()); |
| 9655 EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(1.f, 1.f)); | 9636 EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(1.f, 1.f)); |
| 9656 } | 9637 } |
| 9657 | 9638 |
| 9658 TEST_F(LayerTreeHostImplTest, ScrollAnimated) { | 9639 TEST_F(LayerTreeHostImplTest, ScrollAnimated) { |
| 9659 const gfx::Size content_size(1000, 1000); | 9640 const gfx::Size content_size(1000, 1000); |
| 9660 const gfx::Size viewport_size(50, 100); | 9641 const gfx::Size viewport_size(50, 100); |
| 9661 CreateBasicVirtualViewportLayers(viewport_size, content_size); | 9642 CreateBasicVirtualViewportLayers(viewport_size, content_size); |
| (...skipping 1155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10817 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); | 10798 EXPECT_TRUE(host_impl_->use_gpu_rasterization()); |
| 10818 | 10799 |
| 10819 // Re-initialize with a software output surface. | 10800 // Re-initialize with a software output surface. |
| 10820 output_surface_ = FakeOutputSurface::CreateDelegatingSoftware(); | 10801 output_surface_ = FakeOutputSurface::CreateDelegatingSoftware(); |
| 10821 host_impl_->InitializeRenderer(output_surface_.get()); | 10802 host_impl_->InitializeRenderer(output_surface_.get()); |
| 10822 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); | 10803 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); |
| 10823 } | 10804 } |
| 10824 | 10805 |
| 10825 } // namespace | 10806 } // namespace |
| 10826 } // namespace cc | 10807 } // namespace cc |
| OLD | NEW |