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 |