| 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 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 957 scroll->SetScrollClipLayer(clip->id()); | 957 scroll->SetScrollClipLayer(clip->id()); |
| 958 scroll->SetDrawsContent(true); | 958 scroll->SetDrawsContent(true); |
| 959 | 959 |
| 960 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = | 960 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = |
| 961 SolidColorScrollbarLayerImpl::Create(layer_tree_impl, 4, VERTICAL, 10, 0, | 961 SolidColorScrollbarLayerImpl::Create(layer_tree_impl, 4, VERTICAL, 10, 0, |
| 962 false, true); | 962 false, true); |
| 963 scrollbar->SetBounds(scrollbar_size); | 963 scrollbar->SetBounds(scrollbar_size); |
| 964 scrollbar->SetPosition(gfx::PointF(345, 0)); | 964 scrollbar->SetPosition(gfx::PointF(345, 0)); |
| 965 scrollbar->SetScrollLayerId(scroll->id()); | 965 scrollbar->SetScrollLayerId(scroll->id()); |
| 966 scrollbar->SetDrawsContent(true); | 966 scrollbar->SetDrawsContent(true); |
| 967 scrollbar->SetOpacity(1.f); | 967 scrollbar->test_properties()->opacity = 1.f; |
| 968 | 968 |
| 969 std::unique_ptr<LayerImpl> squash1 = LayerImpl::Create(layer_tree_impl, 5); | 969 std::unique_ptr<LayerImpl> squash1 = LayerImpl::Create(layer_tree_impl, 5); |
| 970 squash1->SetBounds(gfx::Size(140, 300)); | 970 squash1->SetBounds(gfx::Size(140, 300)); |
| 971 squash1->SetPosition(gfx::PointF(220, 0)); | 971 squash1->SetPosition(gfx::PointF(220, 0)); |
| 972 squash1->SetDrawsContent(true); | 972 squash1->SetDrawsContent(true); |
| 973 | 973 |
| 974 std::unique_ptr<LayerImpl> squash2 = LayerImpl::Create(layer_tree_impl, 6); | 974 std::unique_ptr<LayerImpl> squash2 = LayerImpl::Create(layer_tree_impl, 6); |
| 975 squash2->SetBounds(gfx::Size(140, 300)); | 975 squash2->SetBounds(gfx::Size(140, 300)); |
| 976 squash2->SetPosition(gfx::PointF(220, 300)); | 976 squash2->SetPosition(gfx::PointF(220, 300)); |
| 977 squash2->SetDrawsContent(true); | 977 squash2->SetDrawsContent(true); |
| (...skipping 1693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2671 host_impl_->InitializeRenderer(output_surface_.get()); | 2671 host_impl_->InitializeRenderer(output_surface_.get()); |
| 2672 | 2672 |
| 2673 SetupScrollAndContentsLayers(content_size); | 2673 SetupScrollAndContentsLayers(content_size); |
| 2674 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 4.f); | 2674 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 4.f); |
| 2675 host_impl_->SetViewportSize( | 2675 host_impl_->SetViewportSize( |
| 2676 gfx::Size(content_size.width() / 2, content_size.height() / 2)); | 2676 gfx::Size(content_size.width() / 2, content_size.height() / 2)); |
| 2677 | 2677 |
| 2678 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = | 2678 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = |
| 2679 SolidColorScrollbarLayerImpl::Create(host_impl_->active_tree(), 400, | 2679 SolidColorScrollbarLayerImpl::Create(host_impl_->active_tree(), 400, |
| 2680 VERTICAL, 10, 0, false, true); | 2680 VERTICAL, 10, 0, false, true); |
| 2681 scrollbar->SetOpacity(0.f); | 2681 scrollbar->test_properties()->opacity = 0.f; |
| 2682 EXPECT_FLOAT_EQ(0.f, scrollbar->opacity()); | 2682 EXPECT_FLOAT_EQ(0.f, scrollbar->test_properties()->opacity); |
| 2683 | 2683 |
| 2684 LayerImpl* scroll = host_impl_->active_tree()->OuterViewportScrollLayer(); | 2684 LayerImpl* scroll = host_impl_->active_tree()->OuterViewportScrollLayer(); |
| 2685 LayerImpl* root = host_impl_->active_tree()->InnerViewportContainerLayer(); | 2685 LayerImpl* root = host_impl_->active_tree()->InnerViewportContainerLayer(); |
| 2686 scrollbar->SetScrollLayerId(scroll->id()); | 2686 scrollbar->SetScrollLayerId(scroll->id()); |
| 2687 root->AddChild(std::move(scrollbar)); | 2687 root->AddChild(std::move(scrollbar)); |
| 2688 | 2688 |
| 2689 host_impl_->active_tree()->DidBecomeActive(); | 2689 host_impl_->active_tree()->DidBecomeActive(); |
| 2690 SetNeedsRebuildPropertyTrees(); | 2690 SetNeedsRebuildPropertyTrees(); |
| 2691 DrawFrame(); | 2691 DrawFrame(); |
| 2692 } | 2692 } |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2856 settings.scrollbar_fade_delay_ms = 20; | 2856 settings.scrollbar_fade_delay_ms = 20; |
| 2857 settings.scrollbar_fade_duration_ms = 20; | 2857 settings.scrollbar_fade_duration_ms = 20; |
| 2858 gfx::Size content_size(100, 100); | 2858 gfx::Size content_size(100, 100); |
| 2859 | 2859 |
| 2860 CreateHostImpl(settings, CreateOutputSurface()); | 2860 CreateHostImpl(settings, CreateOutputSurface()); |
| 2861 host_impl_->CreatePendingTree(); | 2861 host_impl_->CreatePendingTree(); |
| 2862 CreateScrollAndContentsLayers(host_impl_->pending_tree(), content_size); | 2862 CreateScrollAndContentsLayers(host_impl_->pending_tree(), content_size); |
| 2863 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = | 2863 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = |
| 2864 SolidColorScrollbarLayerImpl::Create(host_impl_->pending_tree(), 400, | 2864 SolidColorScrollbarLayerImpl::Create(host_impl_->pending_tree(), 400, |
| 2865 VERTICAL, 10, 0, false, true); | 2865 VERTICAL, 10, 0, false, true); |
| 2866 scrollbar->SetOpacity(0.f); | 2866 scrollbar->test_properties()->opacity = 0.f; |
| 2867 LayerImpl* scroll = host_impl_->pending_tree()->OuterViewportScrollLayer(); | 2867 LayerImpl* scroll = host_impl_->pending_tree()->OuterViewportScrollLayer(); |
| 2868 LayerImpl* root = host_impl_->pending_tree()->InnerViewportContainerLayer(); | 2868 LayerImpl* root = host_impl_->pending_tree()->InnerViewportContainerLayer(); |
| 2869 scrollbar->SetScrollLayerId(scroll->id()); | 2869 scrollbar->SetScrollLayerId(scroll->id()); |
| 2870 root->AddChild(std::move(scrollbar)); | 2870 root->AddChild(std::move(scrollbar)); |
| 2871 host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f); | 2871 host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f); |
| 2872 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); | 2872 host_impl_->pending_tree()->BuildPropertyTreesForTesting(); |
| 2873 host_impl_->ActivateSyncTree(); | 2873 host_impl_->ActivateSyncTree(); |
| 2874 | 2874 |
| 2875 LayerImpl* scrollbar_layer = host_impl_->active_tree()->LayerById(400); | 2875 LayerImpl* scrollbar_layer = host_impl_->active_tree()->LayerById(400); |
| 2876 | 2876 |
| 2877 EffectNode* active_tree_node = | 2877 EffectNode* active_tree_node = |
| 2878 host_impl_->active_tree()->property_trees()->effect_tree.Node( | 2878 host_impl_->active_tree()->property_trees()->effect_tree.Node( |
| 2879 scrollbar_layer->effect_tree_index()); | 2879 scrollbar_layer->effect_tree_index()); |
| 2880 EXPECT_FLOAT_EQ(scrollbar_layer->opacity(), active_tree_node->data.opacity); | 2880 EXPECT_FLOAT_EQ(scrollbar_layer->Opacity(), active_tree_node->data.opacity); |
| 2881 | 2881 |
| 2882 host_impl_->ScrollbarAnimationControllerForId(scroll->id()) | 2882 host_impl_->ScrollbarAnimationControllerForId(scroll->id()) |
| 2883 ->DidMouseMoveNear(0); | 2883 ->DidMouseMoveNear(0); |
| 2884 host_impl_->ScrollBegin(BeginState(gfx::Point()).get(), | 2884 host_impl_->ScrollBegin(BeginState(gfx::Point()).get(), |
| 2885 InputHandler::WHEEL); | 2885 InputHandler::WHEEL); |
| 2886 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 5)).get()); | 2886 host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 5)).get()); |
| 2887 host_impl_->ScrollEnd(EndState().get()); | 2887 host_impl_->ScrollEnd(EndState().get()); |
| 2888 host_impl_->CreatePendingTree(); | 2888 host_impl_->CreatePendingTree(); |
| 2889 EffectNode* pending_tree_node = | 2889 EffectNode* pending_tree_node = |
| 2890 host_impl_->pending_tree()->property_trees()->effect_tree.Node( | 2890 host_impl_->pending_tree()->property_trees()->effect_tree.Node( |
| 2891 scrollbar_layer->effect_tree_index()); | 2891 scrollbar_layer->effect_tree_index()); |
| 2892 host_impl_->pending_tree() | 2892 host_impl_->pending_tree() |
| 2893 ->property_trees() | 2893 ->property_trees() |
| 2894 ->always_use_active_tree_opacity_effect_ids.push_back(400); | 2894 ->always_use_active_tree_opacity_effect_ids.push_back(400); |
| 2895 EXPECT_FLOAT_EQ(1.f, active_tree_node->data.opacity); | 2895 EXPECT_FLOAT_EQ(1.f, active_tree_node->data.opacity); |
| 2896 EXPECT_FLOAT_EQ(1.f, scrollbar_layer->opacity()); | 2896 EXPECT_FLOAT_EQ(1.f, scrollbar_layer->Opacity()); |
| 2897 EXPECT_FLOAT_EQ(0.f, pending_tree_node->data.opacity); | 2897 EXPECT_FLOAT_EQ(0.f, pending_tree_node->data.opacity); |
| 2898 host_impl_->ActivateSyncTree(); | 2898 host_impl_->ActivateSyncTree(); |
| 2899 active_tree_node = | 2899 active_tree_node = |
| 2900 host_impl_->active_tree()->property_trees()->effect_tree.Node( | 2900 host_impl_->active_tree()->property_trees()->effect_tree.Node( |
| 2901 scrollbar_layer->effect_tree_index()); | 2901 scrollbar_layer->effect_tree_index()); |
| 2902 EXPECT_FLOAT_EQ(1.f, active_tree_node->data.opacity); | 2902 EXPECT_FLOAT_EQ(1.f, active_tree_node->data.opacity); |
| 2903 EXPECT_FLOAT_EQ(1.f, scrollbar_layer->opacity()); | 2903 EXPECT_FLOAT_EQ(1.f, scrollbar_layer->Opacity()); |
| 2904 } | 2904 } |
| 2905 }; | 2905 }; |
| 2906 | 2906 |
| 2907 TEST_F(LayerTreeHostImplTestScrollbarOpacity, LinearFade) { | 2907 TEST_F(LayerTreeHostImplTestScrollbarOpacity, LinearFade) { |
| 2908 RunTest(LayerTreeSettings::LINEAR_FADE); | 2908 RunTest(LayerTreeSettings::LINEAR_FADE); |
| 2909 } | 2909 } |
| 2910 | 2910 |
| 2911 TEST_F(LayerTreeHostImplTestScrollbarOpacity, Thinning) { | 2911 TEST_F(LayerTreeHostImplTestScrollbarOpacity, Thinning) { |
| 2912 RunTest(LayerTreeSettings::THINNING); | 2912 RunTest(LayerTreeSettings::THINNING); |
| 2913 } | 2913 } |
| (...skipping 3319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6233 layer1->SetExpectation(true, false); | 6233 layer1->SetExpectation(true, false); |
| 6234 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6234 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6235 SetNeedsRebuildPropertyTrees(); | 6235 SetNeedsRebuildPropertyTrees(); |
| 6236 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6236 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6237 host_impl_->DrawLayers(&frame); | 6237 host_impl_->DrawLayers(&frame); |
| 6238 EXPECT_TRUE(layer1->quads_appended()); | 6238 EXPECT_TRUE(layer1->quads_appended()); |
| 6239 host_impl_->DidDrawAllLayers(frame); | 6239 host_impl_->DidDrawAllLayers(frame); |
| 6240 | 6240 |
| 6241 // Layer with translucent opacity, drawn with blending. | 6241 // Layer with translucent opacity, drawn with blending. |
| 6242 layer1->SetContentsOpaque(true); | 6242 layer1->SetContentsOpaque(true); |
| 6243 layer1->SetOpacity(0.5f); | 6243 layer1->test_properties()->opacity = 0.5f; |
| 6244 layer1->NoteLayerPropertyChanged(); | 6244 layer1->NoteLayerPropertyChanged(); |
| 6245 layer1->SetExpectation(true, false); | 6245 layer1->SetExpectation(true, false); |
| 6246 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6246 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6247 SetNeedsRebuildPropertyTrees(); | 6247 SetNeedsRebuildPropertyTrees(); |
| 6248 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6248 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6249 host_impl_->DrawLayers(&frame); | 6249 host_impl_->DrawLayers(&frame); |
| 6250 EXPECT_TRUE(layer1->quads_appended()); | 6250 EXPECT_TRUE(layer1->quads_appended()); |
| 6251 host_impl_->DidDrawAllLayers(frame); | 6251 host_impl_->DidDrawAllLayers(frame); |
| 6252 | 6252 |
| 6253 // Layer with translucent opacity and painting, drawn with blending. | 6253 // Layer with translucent opacity and painting, drawn with blending. |
| 6254 layer1->SetContentsOpaque(true); | 6254 layer1->SetContentsOpaque(true); |
| 6255 layer1->SetOpacity(0.5f); | 6255 layer1->test_properties()->opacity = 0.5f; |
| 6256 layer1->NoteLayerPropertyChanged(); | 6256 layer1->NoteLayerPropertyChanged(); |
| 6257 layer1->SetExpectation(true, false); | 6257 layer1->SetExpectation(true, false); |
| 6258 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6258 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6259 SetNeedsRebuildPropertyTrees(); | 6259 SetNeedsRebuildPropertyTrees(); |
| 6260 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6260 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6261 host_impl_->DrawLayers(&frame); | 6261 host_impl_->DrawLayers(&frame); |
| 6262 EXPECT_TRUE(layer1->quads_appended()); | 6262 EXPECT_TRUE(layer1->quads_appended()); |
| 6263 host_impl_->DidDrawAllLayers(frame); | 6263 host_impl_->DidDrawAllLayers(frame); |
| 6264 | 6264 |
| 6265 layer1->AddChild( | 6265 layer1->AddChild( |
| 6266 BlendStateCheckLayer::Create(host_impl_->active_tree(), | 6266 BlendStateCheckLayer::Create(host_impl_->active_tree(), |
| 6267 3, | 6267 3, |
| 6268 host_impl_->resource_provider())); | 6268 host_impl_->resource_provider())); |
| 6269 BlendStateCheckLayer* layer2 = | 6269 BlendStateCheckLayer* layer2 = |
| 6270 static_cast<BlendStateCheckLayer*>(layer1->children()[0]); | 6270 static_cast<BlendStateCheckLayer*>(layer1->children()[0]); |
| 6271 layer2->SetPosition(gfx::PointF(4.f, 4.f)); | 6271 layer2->SetPosition(gfx::PointF(4.f, 4.f)); |
| 6272 | 6272 |
| 6273 // 2 opaque layers, drawn without blending. | 6273 // 2 opaque layers, drawn without blending. |
| 6274 layer1->SetContentsOpaque(true); | 6274 layer1->SetContentsOpaque(true); |
| 6275 layer1->SetOpacity(1.f); | 6275 layer1->test_properties()->opacity = 1.f; |
| 6276 layer1->NoteLayerPropertyChanged(); | 6276 layer1->NoteLayerPropertyChanged(); |
| 6277 layer1->SetExpectation(false, false); | 6277 layer1->SetExpectation(false, false); |
| 6278 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6278 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6279 layer2->SetContentsOpaque(true); | 6279 layer2->SetContentsOpaque(true); |
| 6280 layer2->SetOpacity(1.f); | 6280 layer2->test_properties()->opacity = 1.f; |
| 6281 layer2->NoteLayerPropertyChanged(); | 6281 layer2->NoteLayerPropertyChanged(); |
| 6282 layer2->SetExpectation(false, false); | 6282 layer2->SetExpectation(false, false); |
| 6283 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6283 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6284 SetNeedsRebuildPropertyTrees(); | 6284 SetNeedsRebuildPropertyTrees(); |
| 6285 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6285 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6286 host_impl_->DrawLayers(&frame); | 6286 host_impl_->DrawLayers(&frame); |
| 6287 EXPECT_TRUE(layer1->quads_appended()); | 6287 EXPECT_TRUE(layer1->quads_appended()); |
| 6288 EXPECT_TRUE(layer2->quads_appended()); | 6288 EXPECT_TRUE(layer2->quads_appended()); |
| 6289 host_impl_->DidDrawAllLayers(frame); | 6289 host_impl_->DidDrawAllLayers(frame); |
| 6290 | 6290 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 6316 EXPECT_TRUE(layer1->quads_appended()); | 6316 EXPECT_TRUE(layer1->quads_appended()); |
| 6317 EXPECT_TRUE(layer2->quads_appended()); | 6317 EXPECT_TRUE(layer2->quads_appended()); |
| 6318 host_impl_->DidDrawAllLayers(frame); | 6318 host_impl_->DidDrawAllLayers(frame); |
| 6319 | 6319 |
| 6320 // Parent layer with translucent opacity and opaque content. Since it has a | 6320 // Parent layer with translucent opacity and opaque content. Since it has a |
| 6321 // drawing child, it's drawn to a render surface which carries the opacity, | 6321 // drawing child, it's drawn to a render surface which carries the opacity, |
| 6322 // so it's itself drawn without blending. | 6322 // so it's itself drawn without blending. |
| 6323 // Child layer with opaque content, drawn without blending (parent surface | 6323 // Child layer with opaque content, drawn without blending (parent surface |
| 6324 // carries the inherited opacity). | 6324 // carries the inherited opacity). |
| 6325 layer1->SetContentsOpaque(true); | 6325 layer1->SetContentsOpaque(true); |
| 6326 layer1->SetOpacity(0.5f); | 6326 layer1->test_properties()->opacity = 0.5f; |
| 6327 layer1->NoteLayerPropertyChanged(); | 6327 layer1->NoteLayerPropertyChanged(); |
| 6328 layer1->test_properties()->force_render_surface = true; | 6328 layer1->test_properties()->force_render_surface = true; |
| 6329 layer1->SetExpectation(false, true); | 6329 layer1->SetExpectation(false, true); |
| 6330 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6330 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6331 layer2->SetExpectation(false, false); | 6331 layer2->SetExpectation(false, false); |
| 6332 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6332 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6333 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 6333 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( |
| 6334 host_impl_->active_tree()->root_layer()); | 6334 host_impl_->active_tree()->root_layer()); |
| 6335 SetNeedsRebuildPropertyTrees(); | 6335 SetNeedsRebuildPropertyTrees(); |
| 6336 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6336 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6337 host_impl_->DrawLayers(&frame); | 6337 host_impl_->DrawLayers(&frame); |
| 6338 EXPECT_TRUE(layer1->quads_appended()); | 6338 EXPECT_TRUE(layer1->quads_appended()); |
| 6339 EXPECT_TRUE(layer2->quads_appended()); | 6339 EXPECT_TRUE(layer2->quads_appended()); |
| 6340 host_impl_->DidDrawAllLayers(frame); | 6340 host_impl_->DidDrawAllLayers(frame); |
| 6341 layer1->test_properties()->force_render_surface = false; | 6341 layer1->test_properties()->force_render_surface = false; |
| 6342 | 6342 |
| 6343 // Draw again, but with child non-opaque, to make sure | 6343 // Draw again, but with child non-opaque, to make sure |
| 6344 // layer1 not culled. | 6344 // layer1 not culled. |
| 6345 layer1->SetContentsOpaque(true); | 6345 layer1->SetContentsOpaque(true); |
| 6346 layer1->SetOpacity(1.f); | 6346 layer1->test_properties()->opacity = 1.f; |
| 6347 layer1->NoteLayerPropertyChanged(); | 6347 layer1->NoteLayerPropertyChanged(); |
| 6348 layer1->SetExpectation(false, false); | 6348 layer1->SetExpectation(false, false); |
| 6349 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6349 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6350 layer2->SetContentsOpaque(true); | 6350 layer2->SetContentsOpaque(true); |
| 6351 layer2->SetOpacity(0.5f); | 6351 layer2->test_properties()->opacity = 0.5f; |
| 6352 layer2->NoteLayerPropertyChanged(); | 6352 layer2->NoteLayerPropertyChanged(); |
| 6353 layer2->SetExpectation(true, false); | 6353 layer2->SetExpectation(true, false); |
| 6354 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6354 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6355 SetNeedsRebuildPropertyTrees(); | 6355 SetNeedsRebuildPropertyTrees(); |
| 6356 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6356 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6357 host_impl_->DrawLayers(&frame); | 6357 host_impl_->DrawLayers(&frame); |
| 6358 EXPECT_TRUE(layer1->quads_appended()); | 6358 EXPECT_TRUE(layer1->quads_appended()); |
| 6359 EXPECT_TRUE(layer2->quads_appended()); | 6359 EXPECT_TRUE(layer2->quads_appended()); |
| 6360 host_impl_->DidDrawAllLayers(frame); | 6360 host_impl_->DidDrawAllLayers(frame); |
| 6361 | 6361 |
| 6362 // A second way of making the child non-opaque. | 6362 // A second way of making the child non-opaque. |
| 6363 layer1->SetContentsOpaque(true); | 6363 layer1->SetContentsOpaque(true); |
| 6364 layer1->SetOpacity(1.f); | 6364 layer1->test_properties()->opacity = 1.f; |
| 6365 layer1->NoteLayerPropertyChanged(); | 6365 layer1->NoteLayerPropertyChanged(); |
| 6366 layer1->SetExpectation(false, false); | 6366 layer1->SetExpectation(false, false); |
| 6367 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6367 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6368 layer2->SetContentsOpaque(false); | 6368 layer2->SetContentsOpaque(false); |
| 6369 layer2->SetOpacity(1.f); | 6369 layer2->test_properties()->opacity = 1.f; |
| 6370 layer2->NoteLayerPropertyChanged(); | 6370 layer2->NoteLayerPropertyChanged(); |
| 6371 layer2->SetExpectation(true, false); | 6371 layer2->SetExpectation(true, false); |
| 6372 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6372 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6373 SetNeedsRebuildPropertyTrees(); | 6373 SetNeedsRebuildPropertyTrees(); |
| 6374 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6374 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6375 host_impl_->DrawLayers(&frame); | 6375 host_impl_->DrawLayers(&frame); |
| 6376 EXPECT_TRUE(layer1->quads_appended()); | 6376 EXPECT_TRUE(layer1->quads_appended()); |
| 6377 EXPECT_TRUE(layer2->quads_appended()); | 6377 EXPECT_TRUE(layer2->quads_appended()); |
| 6378 host_impl_->DidDrawAllLayers(frame); | 6378 host_impl_->DidDrawAllLayers(frame); |
| 6379 | 6379 |
| 6380 // And when the layer says its not opaque but is painted opaque, it is not | 6380 // And when the layer says its not opaque but is painted opaque, it is not |
| 6381 // blended. | 6381 // blended. |
| 6382 layer1->SetContentsOpaque(true); | 6382 layer1->SetContentsOpaque(true); |
| 6383 layer1->SetOpacity(1.f); | 6383 layer1->test_properties()->opacity = 1.f; |
| 6384 layer1->NoteLayerPropertyChanged(); | 6384 layer1->NoteLayerPropertyChanged(); |
| 6385 layer1->SetExpectation(false, false); | 6385 layer1->SetExpectation(false, false); |
| 6386 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6386 layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6387 layer2->SetContentsOpaque(true); | 6387 layer2->SetContentsOpaque(true); |
| 6388 layer2->SetOpacity(1.f); | 6388 layer2->test_properties()->opacity = 1.f; |
| 6389 layer2->NoteLayerPropertyChanged(); | 6389 layer2->NoteLayerPropertyChanged(); |
| 6390 layer2->SetExpectation(false, false); | 6390 layer2->SetExpectation(false, false); |
| 6391 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 6391 layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
| 6392 SetNeedsRebuildPropertyTrees(); | 6392 SetNeedsRebuildPropertyTrees(); |
| 6393 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6393 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 6394 host_impl_->DrawLayers(&frame); | 6394 host_impl_->DrawLayers(&frame); |
| 6395 EXPECT_TRUE(layer1->quads_appended()); | 6395 EXPECT_TRUE(layer1->quads_appended()); |
| 6396 EXPECT_TRUE(layer2->quads_appended()); | 6396 EXPECT_TRUE(layer2->quads_appended()); |
| 6397 host_impl_->DidDrawAllLayers(frame); | 6397 host_impl_->DidDrawAllLayers(frame); |
| 6398 | 6398 |
| (...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7163 gfx::Rect child_rect(10, 10, 50, 50); | 7163 gfx::Rect child_rect(10, 10, 50, 50); |
| 7164 gfx::Rect grand_child_rect(5, 5, 150, 150); | 7164 gfx::Rect grand_child_rect(5, 5, 150, 150); |
| 7165 | 7165 |
| 7166 root->test_properties()->force_render_surface = true; | 7166 root->test_properties()->force_render_surface = true; |
| 7167 root->SetPosition(gfx::PointF(root_rect.origin())); | 7167 root->SetPosition(gfx::PointF(root_rect.origin())); |
| 7168 root->SetBounds(root_rect.size()); | 7168 root->SetBounds(root_rect.size()); |
| 7169 root->draw_properties().visible_layer_rect = root_rect; | 7169 root->draw_properties().visible_layer_rect = root_rect; |
| 7170 root->SetDrawsContent(false); | 7170 root->SetDrawsContent(false); |
| 7171 | 7171 |
| 7172 child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y())); | 7172 child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y())); |
| 7173 child->SetOpacity(0.5f); | 7173 child->test_properties()->opacity = 0.5f; |
| 7174 child->SetBounds(gfx::Size(child_rect.width(), child_rect.height())); | 7174 child->SetBounds(gfx::Size(child_rect.width(), child_rect.height())); |
| 7175 child->draw_properties().visible_layer_rect = child_rect; | 7175 child->draw_properties().visible_layer_rect = child_rect; |
| 7176 child->SetDrawsContent(false); | 7176 child->SetDrawsContent(false); |
| 7177 child->test_properties()->force_render_surface = true; | 7177 child->test_properties()->force_render_surface = true; |
| 7178 | 7178 |
| 7179 grand_child->SetPosition(gfx::PointF(grand_child_rect.origin())); | 7179 grand_child->SetPosition(gfx::PointF(grand_child_rect.origin())); |
| 7180 grand_child->SetBounds(grand_child_rect.size()); | 7180 grand_child->SetBounds(grand_child_rect.size()); |
| 7181 grand_child->draw_properties().visible_layer_rect = grand_child_rect; | 7181 grand_child->draw_properties().visible_layer_rect = grand_child_rect; |
| 7182 grand_child->SetDrawsContent(true); | 7182 grand_child->SetDrawsContent(true); |
| 7183 | 7183 |
| (...skipping 3562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10746 | 10746 |
| 10747 // Re-initialize with a software output surface. | 10747 // Re-initialize with a software output surface. |
| 10748 output_surface_ = FakeOutputSurface::CreateSoftware( | 10748 output_surface_ = FakeOutputSurface::CreateSoftware( |
| 10749 base::WrapUnique(new SoftwareOutputDevice)); | 10749 base::WrapUnique(new SoftwareOutputDevice)); |
| 10750 host_impl_->InitializeRenderer(output_surface_.get()); | 10750 host_impl_->InitializeRenderer(output_surface_.get()); |
| 10751 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); | 10751 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); |
| 10752 } | 10752 } |
| 10753 | 10753 |
| 10754 } // namespace | 10754 } // namespace |
| 10755 } // namespace cc | 10755 } // namespace cc |
| OLD | NEW |