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 <cmath> | 7 #include <cmath> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 3824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3835 host_impl_->resource_provider())); | 3835 host_impl_->resource_provider())); |
3836 BlendStateCheckLayer* layer1 = | 3836 BlendStateCheckLayer* layer1 = |
3837 static_cast<BlendStateCheckLayer*>(root->children()[0]); | 3837 static_cast<BlendStateCheckLayer*>(root->children()[0]); |
3838 layer1->SetPosition(gfx::PointF(2.f, 2.f)); | 3838 layer1->SetPosition(gfx::PointF(2.f, 2.f)); |
3839 | 3839 |
3840 LayerTreeHostImpl::FrameData frame; | 3840 LayerTreeHostImpl::FrameData frame; |
3841 | 3841 |
3842 // Opaque layer, drawn without blending. | 3842 // Opaque layer, drawn without blending. |
3843 layer1->SetContentsOpaque(true); | 3843 layer1->SetContentsOpaque(true); |
3844 layer1->SetExpectation(false, false); | 3844 layer1->SetExpectation(false, false); |
3845 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3845 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3846 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3846 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3847 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3847 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3848 EXPECT_TRUE(layer1->quads_appended()); | 3848 EXPECT_TRUE(layer1->quads_appended()); |
3849 host_impl_->DidDrawAllLayers(frame); | 3849 host_impl_->DidDrawAllLayers(frame); |
3850 | 3850 |
3851 // Layer with translucent content and painting, so drawn with blending. | 3851 // Layer with translucent content and painting, so drawn with blending. |
3852 layer1->SetContentsOpaque(false); | 3852 layer1->SetContentsOpaque(false); |
3853 layer1->SetExpectation(true, false); | 3853 layer1->SetExpectation(true, false); |
3854 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3854 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3855 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3855 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3856 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3856 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3857 EXPECT_TRUE(layer1->quads_appended()); | 3857 EXPECT_TRUE(layer1->quads_appended()); |
3858 host_impl_->DidDrawAllLayers(frame); | 3858 host_impl_->DidDrawAllLayers(frame); |
3859 | 3859 |
3860 // Layer with translucent opacity, drawn with blending. | 3860 // Layer with translucent opacity, drawn with blending. |
3861 layer1->SetContentsOpaque(true); | 3861 layer1->SetContentsOpaque(true); |
3862 layer1->SetOpacity(0.5f); | 3862 layer1->SetOpacity(0.5f); |
3863 layer1->SetExpectation(true, false); | 3863 layer1->SetExpectation(true, false); |
3864 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3864 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3865 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3865 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3866 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3866 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3867 EXPECT_TRUE(layer1->quads_appended()); | 3867 EXPECT_TRUE(layer1->quads_appended()); |
3868 host_impl_->DidDrawAllLayers(frame); | 3868 host_impl_->DidDrawAllLayers(frame); |
3869 | 3869 |
3870 // Layer with translucent opacity and painting, drawn with blending. | 3870 // Layer with translucent opacity and painting, drawn with blending. |
3871 layer1->SetContentsOpaque(true); | 3871 layer1->SetContentsOpaque(true); |
3872 layer1->SetOpacity(0.5f); | 3872 layer1->SetOpacity(0.5f); |
3873 layer1->SetExpectation(true, false); | 3873 layer1->SetExpectation(true, false); |
3874 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3874 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3875 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3875 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3876 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3876 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3877 EXPECT_TRUE(layer1->quads_appended()); | 3877 EXPECT_TRUE(layer1->quads_appended()); |
3878 host_impl_->DidDrawAllLayers(frame); | 3878 host_impl_->DidDrawAllLayers(frame); |
3879 | 3879 |
3880 layer1->AddChild( | 3880 layer1->AddChild( |
3881 BlendStateCheckLayer::Create(host_impl_->active_tree(), | 3881 BlendStateCheckLayer::Create(host_impl_->active_tree(), |
3882 3, | 3882 3, |
3883 host_impl_->resource_provider())); | 3883 host_impl_->resource_provider())); |
3884 BlendStateCheckLayer* layer2 = | 3884 BlendStateCheckLayer* layer2 = |
3885 static_cast<BlendStateCheckLayer*>(layer1->children()[0]); | 3885 static_cast<BlendStateCheckLayer*>(layer1->children()[0]); |
3886 layer2->SetPosition(gfx::PointF(4.f, 4.f)); | 3886 layer2->SetPosition(gfx::PointF(4.f, 4.f)); |
3887 | 3887 |
3888 // 2 opaque layers, drawn without blending. | 3888 // 2 opaque layers, drawn without blending. |
3889 layer1->SetContentsOpaque(true); | 3889 layer1->SetContentsOpaque(true); |
3890 layer1->SetOpacity(1.f); | 3890 layer1->SetOpacity(1.f); |
3891 layer1->SetExpectation(false, false); | 3891 layer1->SetExpectation(false, false); |
3892 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3892 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3893 layer2->SetContentsOpaque(true); | 3893 layer2->SetContentsOpaque(true); |
3894 layer2->SetOpacity(1.f); | 3894 layer2->SetOpacity(1.f); |
3895 layer2->SetExpectation(false, false); | 3895 layer2->SetExpectation(false, false); |
3896 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3896 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3897 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3897 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3898 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3898 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3899 EXPECT_TRUE(layer1->quads_appended()); | 3899 EXPECT_TRUE(layer1->quads_appended()); |
3900 EXPECT_TRUE(layer2->quads_appended()); | 3900 EXPECT_TRUE(layer2->quads_appended()); |
3901 host_impl_->DidDrawAllLayers(frame); | 3901 host_impl_->DidDrawAllLayers(frame); |
3902 | 3902 |
3903 // Parent layer with translucent content, drawn with blending. | 3903 // Parent layer with translucent content, drawn with blending. |
3904 // Child layer with opaque content, drawn without blending. | 3904 // Child layer with opaque content, drawn without blending. |
3905 layer1->SetContentsOpaque(false); | 3905 layer1->SetContentsOpaque(false); |
3906 layer1->SetExpectation(true, false); | 3906 layer1->SetExpectation(true, false); |
3907 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3907 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3908 layer2->SetExpectation(false, false); | 3908 layer2->SetExpectation(false, false); |
3909 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3909 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3910 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3910 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3911 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3911 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3912 EXPECT_TRUE(layer1->quads_appended()); | 3912 EXPECT_TRUE(layer1->quads_appended()); |
3913 EXPECT_TRUE(layer2->quads_appended()); | 3913 EXPECT_TRUE(layer2->quads_appended()); |
3914 host_impl_->DidDrawAllLayers(frame); | 3914 host_impl_->DidDrawAllLayers(frame); |
3915 | 3915 |
3916 // Parent layer with translucent content but opaque painting, drawn without | 3916 // Parent layer with translucent content but opaque painting, drawn without |
3917 // blending. | 3917 // blending. |
3918 // Child layer with opaque content, drawn without blending. | 3918 // Child layer with opaque content, drawn without blending. |
3919 layer1->SetContentsOpaque(true); | 3919 layer1->SetContentsOpaque(true); |
3920 layer1->SetExpectation(false, false); | 3920 layer1->SetExpectation(false, false); |
3921 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3921 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3922 layer2->SetExpectation(false, false); | 3922 layer2->SetExpectation(false, false); |
3923 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3923 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3924 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3924 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3925 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3925 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3926 EXPECT_TRUE(layer1->quads_appended()); | 3926 EXPECT_TRUE(layer1->quads_appended()); |
3927 EXPECT_TRUE(layer2->quads_appended()); | 3927 EXPECT_TRUE(layer2->quads_appended()); |
3928 host_impl_->DidDrawAllLayers(frame); | 3928 host_impl_->DidDrawAllLayers(frame); |
3929 | 3929 |
3930 // Parent layer with translucent opacity and opaque content. Since it has a | 3930 // Parent layer with translucent opacity and opaque content. Since it has a |
3931 // drawing child, it's drawn to a render surface which carries the opacity, | 3931 // drawing child, it's drawn to a render surface which carries the opacity, |
3932 // so it's itself drawn without blending. | 3932 // so it's itself drawn without blending. |
3933 // Child layer with opaque content, drawn without blending (parent surface | 3933 // Child layer with opaque content, drawn without blending (parent surface |
3934 // carries the inherited opacity). | 3934 // carries the inherited opacity). |
3935 layer1->SetContentsOpaque(true); | 3935 layer1->SetContentsOpaque(true); |
3936 layer1->SetOpacity(0.5f); | 3936 layer1->SetOpacity(0.5f); |
3937 layer1->SetExpectation(false, true); | 3937 layer1->SetExpectation(false, true); |
3938 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3938 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3939 layer2->SetExpectation(false, false); | 3939 layer2->SetExpectation(false, false); |
3940 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3940 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3941 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 3941 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( |
3942 host_impl_->active_tree()->root_layer()); | 3942 host_impl_->active_tree()->root_layer()); |
3943 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3943 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3944 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3944 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3945 EXPECT_TRUE(layer1->quads_appended()); | 3945 EXPECT_TRUE(layer1->quads_appended()); |
3946 EXPECT_TRUE(layer2->quads_appended()); | 3946 EXPECT_TRUE(layer2->quads_appended()); |
3947 host_impl_->DidDrawAllLayers(frame); | 3947 host_impl_->DidDrawAllLayers(frame); |
3948 | 3948 |
3949 // Draw again, but with child non-opaque, to make sure | 3949 // Draw again, but with child non-opaque, to make sure |
3950 // layer1 not culled. | 3950 // layer1 not culled. |
3951 layer1->SetContentsOpaque(true); | 3951 layer1->SetContentsOpaque(true); |
3952 layer1->SetOpacity(1.f); | 3952 layer1->SetOpacity(1.f); |
3953 layer1->SetExpectation(false, false); | 3953 layer1->SetExpectation(false, false); |
3954 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3954 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3955 layer2->SetContentsOpaque(true); | 3955 layer2->SetContentsOpaque(true); |
3956 layer2->SetOpacity(0.5f); | 3956 layer2->SetOpacity(0.5f); |
3957 layer2->SetExpectation(true, false); | 3957 layer2->SetExpectation(true, false); |
3958 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3958 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3959 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3959 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3960 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3960 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3961 EXPECT_TRUE(layer1->quads_appended()); | 3961 EXPECT_TRUE(layer1->quads_appended()); |
3962 EXPECT_TRUE(layer2->quads_appended()); | 3962 EXPECT_TRUE(layer2->quads_appended()); |
3963 host_impl_->DidDrawAllLayers(frame); | 3963 host_impl_->DidDrawAllLayers(frame); |
3964 | 3964 |
3965 // A second way of making the child non-opaque. | 3965 // A second way of making the child non-opaque. |
3966 layer1->SetContentsOpaque(true); | 3966 layer1->SetContentsOpaque(true); |
3967 layer1->SetOpacity(1.f); | 3967 layer1->SetOpacity(1.f); |
3968 layer1->SetExpectation(false, false); | 3968 layer1->SetExpectation(false, false); |
3969 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3969 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3970 layer2->SetContentsOpaque(false); | 3970 layer2->SetContentsOpaque(false); |
3971 layer2->SetOpacity(1.f); | 3971 layer2->SetOpacity(1.f); |
3972 layer2->SetExpectation(true, false); | 3972 layer2->SetExpectation(true, false); |
3973 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3973 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3974 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3974 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3975 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3975 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3976 EXPECT_TRUE(layer1->quads_appended()); | 3976 EXPECT_TRUE(layer1->quads_appended()); |
3977 EXPECT_TRUE(layer2->quads_appended()); | 3977 EXPECT_TRUE(layer2->quads_appended()); |
3978 host_impl_->DidDrawAllLayers(frame); | 3978 host_impl_->DidDrawAllLayers(frame); |
3979 | 3979 |
3980 // And when the layer says its not opaque but is painted opaque, it is not | 3980 // And when the layer says its not opaque but is painted opaque, it is not |
3981 // blended. | 3981 // blended. |
3982 layer1->SetContentsOpaque(true); | 3982 layer1->SetContentsOpaque(true); |
3983 layer1->SetOpacity(1.f); | 3983 layer1->SetOpacity(1.f); |
3984 layer1->SetExpectation(false, false); | 3984 layer1->SetExpectation(false, false); |
3985 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3985 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3986 layer2->SetContentsOpaque(true); | 3986 layer2->SetContentsOpaque(true); |
3987 layer2->SetOpacity(1.f); | 3987 layer2->SetOpacity(1.f); |
3988 layer2->SetExpectation(false, false); | 3988 layer2->SetExpectation(false, false); |
3989 layer2->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 3989 layer2->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
3990 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3990 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3991 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3991 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3992 EXPECT_TRUE(layer1->quads_appended()); | 3992 EXPECT_TRUE(layer1->quads_appended()); |
3993 EXPECT_TRUE(layer2->quads_appended()); | 3993 EXPECT_TRUE(layer2->quads_appended()); |
3994 host_impl_->DidDrawAllLayers(frame); | 3994 host_impl_->DidDrawAllLayers(frame); |
3995 | 3995 |
3996 // Layer with partially opaque contents, drawn with blending. | 3996 // Layer with partially opaque contents, drawn with blending. |
3997 layer1->SetContentsOpaque(false); | 3997 layer1->SetContentsOpaque(false); |
3998 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 3998 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
3999 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 5)); | 3999 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 5)); |
4000 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 4000 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
4001 layer1->SetExpectation(true, false); | 4001 layer1->SetExpectation(true, false); |
4002 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 4002 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
4003 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4003 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4004 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 4004 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
4005 EXPECT_TRUE(layer1->quads_appended()); | 4005 EXPECT_TRUE(layer1->quads_appended()); |
4006 host_impl_->DidDrawAllLayers(frame); | 4006 host_impl_->DidDrawAllLayers(frame); |
4007 | 4007 |
4008 // Layer with partially opaque contents partially culled, drawn with blending. | 4008 // Layer with partially opaque contents partially culled, drawn with blending. |
4009 layer1->SetContentsOpaque(false); | 4009 layer1->SetContentsOpaque(false); |
4010 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 4010 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
4011 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 2)); | 4011 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 5, 2)); |
4012 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 4012 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
4013 layer1->SetExpectation(true, false); | 4013 layer1->SetExpectation(true, false); |
4014 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 4014 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
4015 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4015 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4016 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 4016 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
4017 EXPECT_TRUE(layer1->quads_appended()); | 4017 EXPECT_TRUE(layer1->quads_appended()); |
4018 host_impl_->DidDrawAllLayers(frame); | 4018 host_impl_->DidDrawAllLayers(frame); |
4019 | 4019 |
4020 // Layer with partially opaque contents culled, drawn with blending. | 4020 // Layer with partially opaque contents culled, drawn with blending. |
4021 layer1->SetContentsOpaque(false); | 4021 layer1->SetContentsOpaque(false); |
4022 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 4022 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
4023 layer1->SetQuadVisibleRect(gfx::Rect(7, 5, 3, 5)); | 4023 layer1->SetQuadVisibleRect(gfx::Rect(7, 5, 3, 5)); |
4024 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 4024 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
4025 layer1->SetExpectation(true, false); | 4025 layer1->SetExpectation(true, false); |
4026 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 4026 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
4027 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4027 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4028 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 4028 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
4029 EXPECT_TRUE(layer1->quads_appended()); | 4029 EXPECT_TRUE(layer1->quads_appended()); |
4030 host_impl_->DidDrawAllLayers(frame); | 4030 host_impl_->DidDrawAllLayers(frame); |
4031 | 4031 |
4032 // Layer with partially opaque contents and translucent contents culled, drawn | 4032 // Layer with partially opaque contents and translucent contents culled, drawn |
4033 // without blending. | 4033 // without blending. |
4034 layer1->SetContentsOpaque(false); | 4034 layer1->SetContentsOpaque(false); |
4035 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); | 4035 layer1->SetQuadRect(gfx::Rect(5, 5, 5, 5)); |
4036 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 2, 5)); | 4036 layer1->SetQuadVisibleRect(gfx::Rect(5, 5, 2, 5)); |
4037 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); | 4037 layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
4038 layer1->SetExpectation(false, false); | 4038 layer1->SetExpectation(false, false); |
4039 layer1->SetUpdateRect(gfx::RectF(layer1->content_bounds())); | 4039 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
4040 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4040 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4041 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 4041 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
4042 EXPECT_TRUE(layer1->quads_appended()); | 4042 EXPECT_TRUE(layer1->quads_appended()); |
4043 host_impl_->DidDrawAllLayers(frame); | 4043 host_impl_->DidDrawAllLayers(frame); |
4044 } | 4044 } |
4045 | 4045 |
4046 class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { | 4046 class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
4047 protected: | 4047 protected: |
4048 LayerTreeHostImplViewportCoveredTest() : | 4048 LayerTreeHostImplViewportCoveredTest() : |
4049 gutter_quad_material_(DrawQuad::SOLID_COLOR), | 4049 gutter_quad_material_(DrawQuad::SOLID_COLOR), |
(...skipping 3221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7271 // surface. | 7271 // surface. |
7272 EXPECT_EQ(0, num_lost_surfaces_); | 7272 EXPECT_EQ(0, num_lost_surfaces_); |
7273 host_impl_->DidLoseOutputSurface(); | 7273 host_impl_->DidLoseOutputSurface(); |
7274 EXPECT_EQ(1, num_lost_surfaces_); | 7274 EXPECT_EQ(1, num_lost_surfaces_); |
7275 host_impl_->DidLoseOutputSurface(); | 7275 host_impl_->DidLoseOutputSurface(); |
7276 EXPECT_LE(1, num_lost_surfaces_); | 7276 EXPECT_LE(1, num_lost_surfaces_); |
7277 } | 7277 } |
7278 | 7278 |
7279 } // namespace | 7279 } // namespace |
7280 } // namespace cc | 7280 } // namespace cc |
OLD | NEW |