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

Side by Side Diff: cc/trees/layer_tree_host_common_unittest.cc

Issue 1132253003: Observe LCD text restrictions during layer animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: contents_opaque + animation unit test Created 5 years, 7 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 | « cc/trees/layer_tree_host_common.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 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_common.h" 5 #include "cc/trees/layer_tree_host_common.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "cc/animation/layer_animation_controller.h" 10 #include "cc/animation/layer_animation_controller.h"
(...skipping 5959 matching lines...) Expand 10 before | Expand all | Expand 10 after
5970 child_->SetContentsOpaque(true); 5970 child_->SetContentsOpaque(true);
5971 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_, 5971 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_,
5972 layers_always_allowed_lcd_text_); 5972 layers_always_allowed_lcd_text_);
5973 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text()); 5973 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text());
5974 EXPECT_EQ(expect_lcd_text, child_->can_use_lcd_text()); 5974 EXPECT_EQ(expect_lcd_text, child_->can_use_lcd_text());
5975 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text()); 5975 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text());
5976 } 5976 }
5977 5977
5978 TEST_P(LCDTextTest, CanUseLCDTextWithAnimation) { 5978 TEST_P(LCDTextTest, CanUseLCDTextWithAnimation) {
5979 bool expect_lcd_text = can_use_lcd_text_ || layers_always_allowed_lcd_text_; 5979 bool expect_lcd_text = can_use_lcd_text_ || layers_always_allowed_lcd_text_;
5980 bool expect_not_lcd_text = layers_always_allowed_lcd_text_;
5980 5981
5981 // Sanity check: Make sure can_use_lcd_text_ is set on each node. 5982 // Sanity check: Make sure can_use_lcd_text_ is set on each node.
5982 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_, 5983 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_,
5983 layers_always_allowed_lcd_text_); 5984 layers_always_allowed_lcd_text_);
5984 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text()); 5985 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text());
5985 EXPECT_EQ(expect_lcd_text, child_->can_use_lcd_text()); 5986 EXPECT_EQ(expect_lcd_text, child_->can_use_lcd_text());
5986 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text()); 5987 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text());
5987 5988
5988 // Add opacity animation. 5989 // Add opacity animation.
5989 child_->SetOpacity(0.9f); 5990 child_->SetOpacity(0.9f);
5990 AddOpacityTransitionToController( 5991 AddOpacityTransitionToController(
5991 child_->layer_animation_controller(), 10.0, 0.9f, 0.1f, false); 5992 child_->layer_animation_controller(), 10.0, 0.9f, 0.1f, false);
5992 5993
5993 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_, 5994 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_,
5994 layers_always_allowed_lcd_text_); 5995 layers_always_allowed_lcd_text_);
5995 // Text AA should not be adjusted while animation is active. 5996 // Text LCD should be adjusted while animation is active.
5996 // Make sure LCD text AA setting remains unchanged. 5997 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text());
5998 EXPECT_EQ(expect_not_lcd_text, child_->can_use_lcd_text());
5999 EXPECT_EQ(expect_not_lcd_text, grand_child_->can_use_lcd_text());
6000 }
6001
6002 TEST_P(LCDTextTest, CanUseLCDTextWithAnimationContentsOpaque) {
6003 bool expect_lcd_text = can_use_lcd_text_ || layers_always_allowed_lcd_text_;
6004 bool expect_not_lcd_text = layers_always_allowed_lcd_text_;
6005
6006 // Sanity check: Make sure can_use_lcd_text_ is set on each node.
6007 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_,
6008 layers_always_allowed_lcd_text_);
5997 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text()); 6009 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text());
5998 EXPECT_EQ(expect_lcd_text, child_->can_use_lcd_text()); 6010 EXPECT_EQ(expect_lcd_text, child_->can_use_lcd_text());
5999 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text()); 6011 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text());
6012
6013 // Mark contents non-opaque within the first animation frame.
6014 child_->SetContentsOpaque(false);
6015 AddOpacityTransitionToController(child_->layer_animation_controller(), 10.0,
6016 0.9f, 0.1f, false);
6017
6018 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL, can_use_lcd_text_,
6019 layers_always_allowed_lcd_text_);
6020 // LCD text should be disabled for non-opaque layers even during animations.
6021 EXPECT_EQ(expect_lcd_text, root_->can_use_lcd_text());
6022 EXPECT_EQ(expect_not_lcd_text, child_->can_use_lcd_text());
6023 EXPECT_EQ(expect_lcd_text, grand_child_->can_use_lcd_text());
6000 } 6024 }
6001 6025
6002 INSTANTIATE_TEST_CASE_P(LayerTreeHostCommonTest, 6026 INSTANTIATE_TEST_CASE_P(LayerTreeHostCommonTest,
6003 LCDTextTest, 6027 LCDTextTest,
6004 testing::Combine(testing::Bool(), 6028 testing::Combine(testing::Bool(),
6005 testing::Bool(), 6029 testing::Bool(),
6006 testing::Bool())); 6030 testing::Bool()));
6007 6031
6008 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_SingleLayer) { 6032 TEST_F(LayerTreeHostCommonTest, SubtreeHidden_SingleLayer) {
6009 FakeImplProxy proxy; 6033 FakeImplProxy proxy;
(...skipping 3557 matching lines...) Expand 10 before | Expand all | Expand 10 after
9567 9591
9568 EXPECT_EQ(root->num_layer_or_descendants_with_input_handler(), 0); 9592 EXPECT_EQ(root->num_layer_or_descendants_with_input_handler(), 0);
9569 ExecuteCalculateDrawProperties(root.get()); 9593 ExecuteCalculateDrawProperties(root.get());
9570 EXPECT_EQ(root->num_layer_or_descendants_with_input_handler(), 1); 9594 EXPECT_EQ(root->num_layer_or_descendants_with_input_handler(), 1);
9571 child->SetHaveWheelEventHandlers(false); 9595 child->SetHaveWheelEventHandlers(false);
9572 EXPECT_EQ(root->num_layer_or_descendants_with_input_handler(), 0); 9596 EXPECT_EQ(root->num_layer_or_descendants_with_input_handler(), 0);
9573 } 9597 }
9574 9598
9575 } // namespace 9599 } // namespace
9576 } // namespace cc 9600 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698