OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "cc/layers/content_layer.h" | 8 #include "cc/layers/content_layer.h" |
9 #include "cc/layers/delegated_frame_provider.h" | 9 #include "cc/layers/delegated_frame_provider.h" |
10 #include "cc/layers/delegated_frame_resource_collection.h" | 10 #include "cc/layers/delegated_frame_resource_collection.h" |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 }; | 301 }; |
302 | 302 |
303 MULTI_THREAD_TEST_F(LayerTreeHostClientNotReadyDoesNotCreateOutputSurface); | 303 MULTI_THREAD_TEST_F(LayerTreeHostClientNotReadyDoesNotCreateOutputSurface); |
304 | 304 |
305 class LayerTreeHostContextTestLostContextSucceedsWithContent | 305 class LayerTreeHostContextTestLostContextSucceedsWithContent |
306 : public LayerTreeHostContextTestLostContextSucceeds { | 306 : public LayerTreeHostContextTestLostContextSucceeds { |
307 public: | 307 public: |
308 virtual void SetupTree() OVERRIDE { | 308 virtual void SetupTree() OVERRIDE { |
309 root_ = Layer::Create(); | 309 root_ = Layer::Create(); |
310 root_->SetBounds(gfx::Size(10, 10)); | 310 root_->SetBounds(gfx::Size(10, 10)); |
311 root_->SetAnchorPoint(gfx::PointF()); | |
312 root_->SetIsDrawable(true); | 311 root_->SetIsDrawable(true); |
313 | 312 |
314 content_ = FakeContentLayer::Create(&client_); | 313 content_ = FakeContentLayer::Create(&client_); |
315 content_->SetBounds(gfx::Size(10, 10)); | 314 content_->SetBounds(gfx::Size(10, 10)); |
316 content_->SetAnchorPoint(gfx::PointF()); | |
317 content_->SetIsDrawable(true); | 315 content_->SetIsDrawable(true); |
318 | 316 |
319 root_->AddChild(content_); | 317 root_->AddChild(content_); |
320 | 318 |
321 layer_tree_host()->SetRootLayer(root_); | 319 layer_tree_host()->SetRootLayer(root_); |
322 LayerTreeHostContextTest::SetupTree(); | 320 LayerTreeHostContextTest::SetupTree(); |
323 } | 321 } |
324 | 322 |
325 virtual void InvalidateAndSetNeedsCommit() OVERRIDE { | 323 virtual void InvalidateAndSetNeedsCommit() OVERRIDE { |
326 // Invalidate the render surface so we don't try to use a cached copy of the | 324 // Invalidate the render surface so we don't try to use a cached copy of the |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 RGBA_8888); | 720 RGBA_8888); |
723 ResourceProvider::ScopedWriteLockGL lock(child_resource_provider_.get(), | 721 ResourceProvider::ScopedWriteLockGL lock(child_resource_provider_.get(), |
724 resource); | 722 resource); |
725 | 723 |
726 gpu::Mailbox mailbox; | 724 gpu::Mailbox mailbox; |
727 gl->GenMailboxCHROMIUM(mailbox.name); | 725 gl->GenMailboxCHROMIUM(mailbox.name); |
728 GLuint sync_point = gl->InsertSyncPointCHROMIUM(); | 726 GLuint sync_point = gl->InsertSyncPointCHROMIUM(); |
729 | 727 |
730 scoped_refptr<Layer> root = Layer::Create(); | 728 scoped_refptr<Layer> root = Layer::Create(); |
731 root->SetBounds(gfx::Size(10, 10)); | 729 root->SetBounds(gfx::Size(10, 10)); |
732 root->SetAnchorPoint(gfx::PointF()); | |
733 root->SetIsDrawable(true); | 730 root->SetIsDrawable(true); |
734 | 731 |
735 scoped_refptr<FakeDelegatedRendererLayer> delegated = | 732 scoped_refptr<FakeDelegatedRendererLayer> delegated = |
736 FakeDelegatedRendererLayer::Create(delegated_frame_provider_.get()); | 733 FakeDelegatedRendererLayer::Create(delegated_frame_provider_.get()); |
737 delegated->SetBounds(gfx::Size(10, 10)); | 734 delegated->SetBounds(gfx::Size(10, 10)); |
738 delegated->SetAnchorPoint(gfx::PointF()); | |
739 delegated->SetIsDrawable(true); | 735 delegated->SetIsDrawable(true); |
740 root->AddChild(delegated); | 736 root->AddChild(delegated); |
741 | 737 |
742 scoped_refptr<ContentLayer> content = ContentLayer::Create(&client_); | 738 scoped_refptr<ContentLayer> content = ContentLayer::Create(&client_); |
743 content->SetBounds(gfx::Size(10, 10)); | 739 content->SetBounds(gfx::Size(10, 10)); |
744 content->SetAnchorPoint(gfx::PointF()); | |
745 content->SetIsDrawable(true); | 740 content->SetIsDrawable(true); |
746 root->AddChild(content); | 741 root->AddChild(content); |
747 | 742 |
748 scoped_refptr<TextureLayer> texture = TextureLayer::CreateForMailbox(NULL); | 743 scoped_refptr<TextureLayer> texture = TextureLayer::CreateForMailbox(NULL); |
749 texture->SetBounds(gfx::Size(10, 10)); | 744 texture->SetBounds(gfx::Size(10, 10)); |
750 texture->SetAnchorPoint(gfx::PointF()); | |
751 texture->SetIsDrawable(true); | 745 texture->SetIsDrawable(true); |
752 texture->SetTextureMailbox( | 746 texture->SetTextureMailbox( |
753 TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point), | 747 TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point), |
754 SingleReleaseCallback::Create( | 748 SingleReleaseCallback::Create( |
755 base::Bind(&LayerTreeHostContextTestDontUseLostResources:: | 749 base::Bind(&LayerTreeHostContextTestDontUseLostResources:: |
756 EmptyReleaseCallback))); | 750 EmptyReleaseCallback))); |
757 root->AddChild(texture); | 751 root->AddChild(texture); |
758 | 752 |
759 scoped_refptr<ContentLayer> mask = ContentLayer::Create(&client_); | 753 scoped_refptr<ContentLayer> mask = ContentLayer::Create(&client_); |
760 mask->SetBounds(gfx::Size(10, 10)); | 754 mask->SetBounds(gfx::Size(10, 10)); |
761 mask->SetAnchorPoint(gfx::PointF()); | |
762 | 755 |
763 scoped_refptr<ContentLayer> content_with_mask = | 756 scoped_refptr<ContentLayer> content_with_mask = |
764 ContentLayer::Create(&client_); | 757 ContentLayer::Create(&client_); |
765 content_with_mask->SetBounds(gfx::Size(10, 10)); | 758 content_with_mask->SetBounds(gfx::Size(10, 10)); |
766 content_with_mask->SetAnchorPoint(gfx::PointF()); | |
767 content_with_mask->SetIsDrawable(true); | 759 content_with_mask->SetIsDrawable(true); |
768 content_with_mask->SetMaskLayer(mask.get()); | 760 content_with_mask->SetMaskLayer(mask.get()); |
769 root->AddChild(content_with_mask); | 761 root->AddChild(content_with_mask); |
770 | 762 |
771 scoped_refptr<VideoLayer> video_color = | 763 scoped_refptr<VideoLayer> video_color = |
772 VideoLayer::Create(&color_frame_provider_); | 764 VideoLayer::Create(&color_frame_provider_); |
773 video_color->SetBounds(gfx::Size(10, 10)); | 765 video_color->SetBounds(gfx::Size(10, 10)); |
774 video_color->SetAnchorPoint(gfx::PointF()); | |
775 video_color->SetIsDrawable(true); | 766 video_color->SetIsDrawable(true); |
776 root->AddChild(video_color); | 767 root->AddChild(video_color); |
777 | 768 |
778 scoped_refptr<VideoLayer> video_hw = | 769 scoped_refptr<VideoLayer> video_hw = |
779 VideoLayer::Create(&hw_frame_provider_); | 770 VideoLayer::Create(&hw_frame_provider_); |
780 video_hw->SetBounds(gfx::Size(10, 10)); | 771 video_hw->SetBounds(gfx::Size(10, 10)); |
781 video_hw->SetAnchorPoint(gfx::PointF()); | |
782 video_hw->SetIsDrawable(true); | 772 video_hw->SetIsDrawable(true); |
783 root->AddChild(video_hw); | 773 root->AddChild(video_hw); |
784 | 774 |
785 scoped_refptr<VideoLayer> video_scaled_hw = | 775 scoped_refptr<VideoLayer> video_scaled_hw = |
786 VideoLayer::Create(&scaled_hw_frame_provider_); | 776 VideoLayer::Create(&scaled_hw_frame_provider_); |
787 video_scaled_hw->SetBounds(gfx::Size(10, 10)); | 777 video_scaled_hw->SetBounds(gfx::Size(10, 10)); |
788 video_scaled_hw->SetAnchorPoint(gfx::PointF()); | |
789 video_scaled_hw->SetIsDrawable(true); | 778 video_scaled_hw->SetIsDrawable(true); |
790 root->AddChild(video_scaled_hw); | 779 root->AddChild(video_scaled_hw); |
791 | 780 |
792 color_video_frame_ = VideoFrame::CreateColorFrame( | 781 color_video_frame_ = VideoFrame::CreateColorFrame( |
793 gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); | 782 gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); |
794 hw_video_frame_ = | 783 hw_video_frame_ = |
795 VideoFrame::WrapNativeTexture(make_scoped_ptr(new gpu::MailboxHolder( | 784 VideoFrame::WrapNativeTexture(make_scoped_ptr(new gpu::MailboxHolder( |
796 mailbox, GL_TEXTURE_2D, sync_point)), | 785 mailbox, GL_TEXTURE_2D, sync_point)), |
797 media::VideoFrame::ReleaseMailboxCB(), | 786 media::VideoFrame::ReleaseMailboxCB(), |
798 gfx::Size(4, 4), | 787 gfx::Size(4, 4), |
(...skipping 12 matching lines...) Expand all Loading... |
811 VideoFrame::ReadPixelsCB()); | 800 VideoFrame::ReadPixelsCB()); |
812 | 801 |
813 color_frame_provider_.set_frame(color_video_frame_); | 802 color_frame_provider_.set_frame(color_video_frame_); |
814 hw_frame_provider_.set_frame(hw_video_frame_); | 803 hw_frame_provider_.set_frame(hw_video_frame_); |
815 scaled_hw_frame_provider_.set_frame(scaled_hw_video_frame_); | 804 scaled_hw_frame_provider_.set_frame(scaled_hw_video_frame_); |
816 | 805 |
817 if (!delegating_renderer()) { | 806 if (!delegating_renderer()) { |
818 // TODO(danakj): IOSurface layer can not be transported. crbug.com/239335 | 807 // TODO(danakj): IOSurface layer can not be transported. crbug.com/239335 |
819 scoped_refptr<IOSurfaceLayer> io_surface = IOSurfaceLayer::Create(); | 808 scoped_refptr<IOSurfaceLayer> io_surface = IOSurfaceLayer::Create(); |
820 io_surface->SetBounds(gfx::Size(10, 10)); | 809 io_surface->SetBounds(gfx::Size(10, 10)); |
821 io_surface->SetAnchorPoint(gfx::PointF()); | |
822 io_surface->SetIsDrawable(true); | 810 io_surface->SetIsDrawable(true); |
823 io_surface->SetIOSurfaceProperties(1, gfx::Size(10, 10)); | 811 io_surface->SetIOSurfaceProperties(1, gfx::Size(10, 10)); |
824 root->AddChild(io_surface); | 812 root->AddChild(io_surface); |
825 } | 813 } |
826 | 814 |
827 // Enable the hud. | 815 // Enable the hud. |
828 LayerTreeDebugState debug_state; | 816 LayerTreeDebugState debug_state; |
829 debug_state.show_property_changed_rects = true; | 817 debug_state.show_property_changed_rects = true; |
830 layer_tree_host()->SetDebugState(debug_state); | 818 layer_tree_host()->SetDebugState(debug_state); |
831 | 819 |
832 scoped_refptr<PaintedScrollbarLayer> scrollbar = | 820 scoped_refptr<PaintedScrollbarLayer> scrollbar = |
833 PaintedScrollbarLayer::Create( | 821 PaintedScrollbarLayer::Create( |
834 scoped_ptr<Scrollbar>(new FakeScrollbar).Pass(), content->id()); | 822 scoped_ptr<Scrollbar>(new FakeScrollbar).Pass(), content->id()); |
835 scrollbar->SetBounds(gfx::Size(10, 10)); | 823 scrollbar->SetBounds(gfx::Size(10, 10)); |
836 scrollbar->SetAnchorPoint(gfx::PointF()); | |
837 scrollbar->SetIsDrawable(true); | 824 scrollbar->SetIsDrawable(true); |
838 root->AddChild(scrollbar); | 825 root->AddChild(scrollbar); |
839 | 826 |
840 layer_tree_host()->SetRootLayer(root); | 827 layer_tree_host()->SetRootLayer(root); |
841 LayerTreeHostContextTest::SetupTree(); | 828 LayerTreeHostContextTest::SetupTree(); |
842 } | 829 } |
843 | 830 |
844 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } | 831 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } |
845 | 832 |
846 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { | 833 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
922 settings->impl_side_painting = true; | 909 settings->impl_side_painting = true; |
923 } | 910 } |
924 }; | 911 }; |
925 | 912 |
926 class LayerTreeHostContextTestImplSidePainting | 913 class LayerTreeHostContextTestImplSidePainting |
927 : public ImplSidePaintingLayerTreeHostContextTest { | 914 : public ImplSidePaintingLayerTreeHostContextTest { |
928 public: | 915 public: |
929 virtual void SetupTree() OVERRIDE { | 916 virtual void SetupTree() OVERRIDE { |
930 scoped_refptr<Layer> root = Layer::Create(); | 917 scoped_refptr<Layer> root = Layer::Create(); |
931 root->SetBounds(gfx::Size(10, 10)); | 918 root->SetBounds(gfx::Size(10, 10)); |
932 root->SetAnchorPoint(gfx::PointF()); | |
933 root->SetIsDrawable(true); | 919 root->SetIsDrawable(true); |
934 | 920 |
935 scoped_refptr<PictureLayer> picture = PictureLayer::Create(&client_); | 921 scoped_refptr<PictureLayer> picture = PictureLayer::Create(&client_); |
936 picture->SetBounds(gfx::Size(10, 10)); | 922 picture->SetBounds(gfx::Size(10, 10)); |
937 picture->SetAnchorPoint(gfx::PointF()); | |
938 picture->SetIsDrawable(true); | 923 picture->SetIsDrawable(true); |
939 root->AddChild(picture); | 924 root->AddChild(picture); |
940 | 925 |
941 layer_tree_host()->SetRootLayer(root); | 926 layer_tree_host()->SetRootLayer(root); |
942 LayerTreeHostContextTest::SetupTree(); | 927 LayerTreeHostContextTest::SetupTree(); |
943 } | 928 } |
944 | 929 |
945 virtual void BeginTest() OVERRIDE { | 930 virtual void BeginTest() OVERRIDE { |
946 times_to_lose_during_commit_ = 1; | 931 times_to_lose_during_commit_ = 1; |
947 PostSetNeedsCommitToMainThread(); | 932 PostSetNeedsCommitToMainThread(); |
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1483 | 1468 |
1484 protected: | 1469 protected: |
1485 FakeContentLayerClient client_; | 1470 FakeContentLayerClient client_; |
1486 scoped_refptr<FakeContentLayer> layer_; | 1471 scoped_refptr<FakeContentLayer> layer_; |
1487 }; | 1472 }; |
1488 | 1473 |
1489 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestSurfaceCreateCallback); | 1474 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestSurfaceCreateCallback); |
1490 | 1475 |
1491 } // namespace | 1476 } // namespace |
1492 } // namespace cc | 1477 } // namespace cc |
OLD | NEW |