Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: ui/compositor/layer_unittest.cc

Issue 2873593002: Force use of and cache render surface. (Closed)
Patch Set: Rebased to resolve conflict. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/compositor/layer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "ui/compositor/layer.h" 5 #include "ui/compositor/layer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after
728 728
729 gfx::Transform transform; 729 gfx::Transform transform;
730 transform.Scale(2, 1); 730 transform.Scale(2, 1);
731 transform.Translate(10, 5); 731 transform.Translate(10, 5);
732 732
733 layer->SetTransform(transform); 733 layer->SetTransform(transform);
734 layer->SetColor(SK_ColorRED); 734 layer->SetColor(SK_ColorRED);
735 layer->SetLayerInverted(true); 735 layer->SetLayerInverted(true);
736 const float temperature = 0.8f; 736 const float temperature = 0.8f;
737 layer->SetLayerTemperature(temperature); 737 layer->SetLayerTemperature(temperature);
738 layer->SetCacheRenderSurface(true);
738 739
739 auto clone = layer->Clone(); 740 auto clone = layer->Clone();
740 741
741 // Cloning preserves layer state. 742 // Cloning preserves layer state.
742 EXPECT_EQ(transform, clone->GetTargetTransform()); 743 EXPECT_EQ(transform, clone->GetTargetTransform());
743 EXPECT_EQ(SK_ColorRED, clone->background_color()); 744 EXPECT_EQ(SK_ColorRED, clone->background_color());
744 EXPECT_EQ(SK_ColorRED, clone->GetTargetColor()); 745 EXPECT_EQ(SK_ColorRED, clone->GetTargetColor());
745 EXPECT_TRUE(clone->layer_inverted()); 746 EXPECT_TRUE(clone->layer_inverted());
746 EXPECT_FLOAT_EQ(temperature, clone->GetTargetTemperature()); 747 EXPECT_FLOAT_EQ(temperature, clone->GetTargetTemperature());
748 // Cloning should not preserve cache_render_surface flag.
749 EXPECT_NE(layer->cc_layer_for_testing()->cache_render_surface(),
750 clone->cc_layer_for_testing()->cache_render_surface());
747 751
748 layer->SetTransform(gfx::Transform()); 752 layer->SetTransform(gfx::Transform());
749 layer->SetColor(SK_ColorGREEN); 753 layer->SetColor(SK_ColorGREEN);
750 layer->SetLayerInverted(false); 754 layer->SetLayerInverted(false);
751 755
752 // The clone is an independent copy, so state changes do not propagate. 756 // The clone is an independent copy, so state changes do not propagate.
753 EXPECT_EQ(transform, clone->GetTargetTransform()); 757 EXPECT_EQ(transform, clone->GetTargetTransform());
754 EXPECT_EQ(SK_ColorRED, clone->background_color()); 758 EXPECT_EQ(SK_ColorRED, clone->background_color());
755 EXPECT_EQ(SK_ColorRED, clone->GetTargetColor()); 759 EXPECT_EQ(SK_ColorRED, clone->GetTargetColor());
756 EXPECT_TRUE(clone->layer_inverted()); 760 EXPECT_TRUE(clone->layer_inverted());
(...skipping 1233 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 1994
1991 // End all animations. 1995 // End all animations.
1992 root->GetAnimator()->StopAnimating(); 1996 root->GetAnimator()->StopAnimating();
1993 EXPECT_FALSE(root->fills_bounds_opaquely()); 1997 EXPECT_FALSE(root->fills_bounds_opaquely());
1994 EXPECT_FALSE( 1998 EXPECT_FALSE(
1995 root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR)); 1999 root->GetAnimator()->IsAnimatingProperty(LayerAnimationElement::COLOR));
1996 EXPECT_EQ(transparent, root->background_color()); 2000 EXPECT_EQ(transparent, root->background_color());
1997 EXPECT_EQ(transparent, root->GetTargetColor()); 2001 EXPECT_EQ(transparent, root->GetTargetColor());
1998 } 2002 }
1999 2003
2004 // Tests that when a layer with cache_render_surface flag has its CC layer
2005 // switched, that the cache_render_surface flag is maintained.
2006 TEST_F(LayerWithRealCompositorTest, SwitchCCLayerCacheRenderSurface) {
2007 std::unique_ptr<Layer> root(CreateLayer(LAYER_TEXTURED));
2008 std::unique_ptr<Layer> l1(CreateLayer(LAYER_TEXTURED));
2009 GetCompositor()->SetRootLayer(root.get());
2010 root->Add(l1.get());
2011
2012 l1->SetCacheRenderSurface(true);
2013
2014 // Change l1's cc::Layer.
2015 l1->SwitchCCLayerForTest();
2016
2017 // Ensure that the cache_render_surface flag is maintained.
2018 EXPECT_TRUE(l1->cc_layer_for_testing()->cache_render_surface());
2019 }
2020
2000 // Tests that the animators in the layer tree is added to the 2021 // Tests that the animators in the layer tree is added to the
2001 // animator-collection when the root-layer is set to the compositor. 2022 // animator-collection when the root-layer is set to the compositor.
2002 TEST_F(LayerWithDelegateTest, RootLayerAnimatorsInCompositor) { 2023 TEST_F(LayerWithDelegateTest, RootLayerAnimatorsInCompositor) {
2003 std::unique_ptr<Layer> root(CreateLayer(LAYER_SOLID_COLOR)); 2024 std::unique_ptr<Layer> root(CreateLayer(LAYER_SOLID_COLOR));
2004 std::unique_ptr<Layer> child( 2025 std::unique_ptr<Layer> child(
2005 CreateColorLayer(SK_ColorRED, gfx::Rect(10, 10))); 2026 CreateColorLayer(SK_ColorRED, gfx::Rect(10, 10)));
2006 child->SetAnimator(LayerAnimator::CreateImplicitAnimator()); 2027 child->SetAnimator(LayerAnimator::CreateImplicitAnimator());
2007 child->SetOpacity(0.5f); 2028 child->SetOpacity(0.5f);
2008 root->Add(child.get()); 2029 root->Add(child.get());
2009 2030
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
2250 layer.set_name("foo"); 2271 layer.set_name("foo");
2251 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info = 2272 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info =
2252 layer.TakeDebugInfo(nullptr); 2273 layer.TakeDebugInfo(nullptr);
2253 std::string trace_format("bar,"); 2274 std::string trace_format("bar,");
2254 debug_info->AppendAsTraceFormat(&trace_format); 2275 debug_info->AppendAsTraceFormat(&trace_format);
2255 std::string expected("bar,{\"layer_name\":\"foo\"}"); 2276 std::string expected("bar,{\"layer_name\":\"foo\"}");
2256 EXPECT_EQ(expected, trace_format); 2277 EXPECT_EQ(expected, trace_format);
2257 } 2278 }
2258 2279
2259 } // namespace ui 2280 } // namespace ui
OLDNEW
« no previous file with comments | « ui/compositor/layer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698