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

Side by Side Diff: cc/layers/layer_unittest.cc

Issue 1906003002: cc: Stop cache transform invertibility at Layer and LayerImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more cleanup Created 4 years, 8 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
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/layers/layer.h" 5 #include "cc/layers/layer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/thread_task_runner_handle.h" 9 #include "base/thread_task_runner_handle.h"
10 #include "cc/animation/animation_host.h" 10 #include "cc/animation/animation_host.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 EXPECT_EQ(src->is_container_for_fixed_position_layers_, 172 EXPECT_EQ(src->is_container_for_fixed_position_layers_,
173 dest->is_container_for_fixed_position_layers_); 173 dest->is_container_for_fixed_position_layers_);
174 EXPECT_EQ(src->position_constraint_, dest->position_constraint_); 174 EXPECT_EQ(src->position_constraint_, dest->position_constraint_);
175 EXPECT_EQ(src->should_flatten_transform_, dest->should_flatten_transform_); 175 EXPECT_EQ(src->should_flatten_transform_, dest->should_flatten_transform_);
176 EXPECT_EQ(src->should_flatten_transform_from_property_tree_, 176 EXPECT_EQ(src->should_flatten_transform_from_property_tree_,
177 dest->should_flatten_transform_from_property_tree_); 177 dest->should_flatten_transform_from_property_tree_);
178 EXPECT_EQ(src->draw_blend_mode_, dest->draw_blend_mode_); 178 EXPECT_EQ(src->draw_blend_mode_, dest->draw_blend_mode_);
179 EXPECT_EQ(src->use_parent_backface_visibility_, 179 EXPECT_EQ(src->use_parent_backface_visibility_,
180 dest->use_parent_backface_visibility_); 180 dest->use_parent_backface_visibility_);
181 EXPECT_EQ(src->transform_, dest->transform_); 181 EXPECT_EQ(src->transform_, dest->transform_);
182 EXPECT_EQ(src->transform_is_invertible_, dest->transform_is_invertible_);
183 EXPECT_EQ(src->sorting_context_id_, dest->sorting_context_id_); 182 EXPECT_EQ(src->sorting_context_id_, dest->sorting_context_id_);
184 EXPECT_EQ(src->num_descendants_that_draw_content_, 183 EXPECT_EQ(src->num_descendants_that_draw_content_,
185 dest->num_descendants_that_draw_content_); 184 dest->num_descendants_that_draw_content_);
186 EXPECT_EQ(src->scroll_clip_layer_id_, dest->scroll_clip_layer_id_); 185 EXPECT_EQ(src->scroll_clip_layer_id_, dest->scroll_clip_layer_id_);
187 EXPECT_EQ(src->user_scrollable_horizontal_, 186 EXPECT_EQ(src->user_scrollable_horizontal_,
188 dest->user_scrollable_horizontal_); 187 dest->user_scrollable_horizontal_);
189 EXPECT_EQ(src->user_scrollable_vertical_, dest->user_scrollable_vertical_); 188 EXPECT_EQ(src->user_scrollable_vertical_, dest->user_scrollable_vertical_);
190 EXPECT_EQ(src->scroll_offset_, dest->scroll_offset_); 189 EXPECT_EQ(src->scroll_offset_, dest->scroll_offset_);
191 EXPECT_EQ(update_rect, dest->update_rect_); 190 EXPECT_EQ(update_rect, dest->update_rect_);
192 191
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 LayerPositionConstraint pos_con; 278 LayerPositionConstraint pos_con;
280 pos_con.set_is_fixed_to_bottom_edge(true); 279 pos_con.set_is_fixed_to_bottom_edge(true);
281 layer->position_constraint_ = pos_con; 280 layer->position_constraint_ = pos_con;
282 layer->should_flatten_transform_ = true; 281 layer->should_flatten_transform_ = true;
283 layer->should_flatten_transform_from_property_tree_ = true; 282 layer->should_flatten_transform_from_property_tree_ = true;
284 layer->draw_blend_mode_ = SkXfermode::kSrcOut_Mode; 283 layer->draw_blend_mode_ = SkXfermode::kSrcOut_Mode;
285 layer->use_parent_backface_visibility_ = true; 284 layer->use_parent_backface_visibility_ = true;
286 gfx::Transform transform; 285 gfx::Transform transform;
287 transform.Rotate(90); 286 transform.Rotate(90);
288 layer->transform_ = transform; 287 layer->transform_ = transform;
289 layer->transform_is_invertible_ = true;
290 layer->sorting_context_id_ = 0; 288 layer->sorting_context_id_ = 0;
291 layer->num_descendants_that_draw_content_ = 5; 289 layer->num_descendants_that_draw_content_ = 5;
292 layer->scroll_clip_layer_id_ = Layer::INVALID_ID; 290 layer->scroll_clip_layer_id_ = Layer::INVALID_ID;
293 layer->user_scrollable_horizontal_ = false; 291 layer->user_scrollable_horizontal_ = false;
294 layer->user_scrollable_vertical_ = true; 292 layer->user_scrollable_vertical_ = true;
295 layer->scroll_offset_ = gfx::ScrollOffset(3, 14); 293 layer->scroll_offset_ = gfx::ScrollOffset(3, 14);
296 layer->update_rect_ = gfx::Rect(14, 15); 294 layer->update_rect_ = gfx::Rect(14, 15);
297 295
298 VerifyBaseLayerPropertiesSerializationAndDeserialization(layer.get()); 296 VerifyBaseLayerPropertiesSerializationAndDeserialization(layer.get());
299 } 297 }
(...skipping 28 matching lines...) Expand all
328 layer->position_constraint_ = pos_con; 326 layer->position_constraint_ = pos_con;
329 layer->should_flatten_transform_ = !layer->should_flatten_transform_; 327 layer->should_flatten_transform_ = !layer->should_flatten_transform_;
330 layer->should_flatten_transform_from_property_tree_ = 328 layer->should_flatten_transform_from_property_tree_ =
331 !layer->should_flatten_transform_from_property_tree_; 329 !layer->should_flatten_transform_from_property_tree_;
332 layer->draw_blend_mode_ = SkXfermode::kSrcOut_Mode; 330 layer->draw_blend_mode_ = SkXfermode::kSrcOut_Mode;
333 layer->use_parent_backface_visibility_ = 331 layer->use_parent_backface_visibility_ =
334 !layer->use_parent_backface_visibility_; 332 !layer->use_parent_backface_visibility_;
335 gfx::Transform transform; 333 gfx::Transform transform;
336 transform.Rotate(90); 334 transform.Rotate(90);
337 layer->transform_ = transform; 335 layer->transform_ = transform;
338 layer->transform_is_invertible_ = !layer->transform_is_invertible_;
339 layer->sorting_context_id_ = 42; 336 layer->sorting_context_id_ = 42;
340 layer->num_descendants_that_draw_content_ = 5; 337 layer->num_descendants_that_draw_content_ = 5;
341 layer->scroll_clip_layer_id_ = 17; 338 layer->scroll_clip_layer_id_ = 17;
342 layer->user_scrollable_horizontal_ = !layer->user_scrollable_horizontal_; 339 layer->user_scrollable_horizontal_ = !layer->user_scrollable_horizontal_;
343 layer->user_scrollable_vertical_ = !layer->user_scrollable_vertical_; 340 layer->user_scrollable_vertical_ = !layer->user_scrollable_vertical_;
344 layer->scroll_offset_ = gfx::ScrollOffset(3, 14); 341 layer->scroll_offset_ = gfx::ScrollOffset(3, 14);
345 layer->update_rect_ = gfx::Rect(14, 15); 342 layer->update_rect_ = gfx::Rect(14, 15);
346 343
347 VerifyBaseLayerPropertiesSerializationAndDeserialization(layer.get()); 344 VerifyBaseLayerPropertiesSerializationAndDeserialization(layer.get());
348 } 345 }
(...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after
1774 EXPECT_EQ(nullptr, mask->parent()); 1771 EXPECT_EQ(nullptr, mask->parent());
1775 EXPECT_EQ(child.get(), mask_replacement->parent()); 1772 EXPECT_EQ(child.get(), mask_replacement->parent());
1776 1773
1777 child->SetReplicaLayer(replica_replacement.get()); 1774 child->SetReplicaLayer(replica_replacement.get());
1778 EXPECT_EQ(nullptr, replica->parent()); 1775 EXPECT_EQ(nullptr, replica->parent());
1779 EXPECT_EQ(child.get(), replica_replacement->parent()); 1776 EXPECT_EQ(child.get(), replica_replacement->parent());
1780 1777
1781 EXPECT_EQ(replica.get(), replica->mask_layer()->parent()); 1778 EXPECT_EQ(replica.get(), replica->mask_layer()->parent());
1782 } 1779 }
1783 1780
1784 TEST_F(LayerTest, CheckTransformIsInvertible) {
1785 scoped_refptr<Layer> layer = Layer::Create();
1786 std::unique_ptr<LayerImpl> impl_layer =
1787 LayerImpl::Create(host_impl_.active_tree(), 1);
1788 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(1);
1789 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
1790 layer_tree_host_->SetRootLayer(layer);
1791
1792 EXPECT_TRUE(layer->transform_is_invertible());
1793
1794 gfx::Transform singular_transform;
1795 singular_transform.Scale3d(
1796 SkDoubleToMScalar(1.0), SkDoubleToMScalar(1.0), SkDoubleToMScalar(0.0));
1797
1798 layer->SetTransform(singular_transform);
1799 layer->PushPropertiesTo(impl_layer.get());
1800
1801 EXPECT_FALSE(layer->transform_is_invertible());
1802 EXPECT_FALSE(impl_layer->transform_is_invertible());
1803
1804 gfx::Transform rotation_transform;
1805 rotation_transform.RotateAboutZAxis(-45.0);
1806
1807 layer->SetTransform(rotation_transform);
1808 layer->PushPropertiesTo(impl_layer.get());
1809 EXPECT_TRUE(layer->transform_is_invertible());
1810 EXPECT_TRUE(impl_layer->transform_is_invertible());
1811
1812 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
1813 }
1814
1815 TEST_F(LayerTest, TransformIsInvertibleAnimation) {
1816 scoped_refptr<Layer> layer = Layer::Create();
1817 std::unique_ptr<LayerImpl> impl_layer =
1818 LayerImpl::Create(host_impl_.active_tree(), 1);
1819 EXPECT_CALL(*layer_tree_host_, SetNeedsFullTreeSync()).Times(1);
1820 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
1821 layer_tree_host_->SetRootLayer(layer);
1822
1823 EXPECT_TRUE(layer->transform_is_invertible());
1824
1825 gfx::Transform singular_transform;
1826 singular_transform.Scale3d(
1827 SkDoubleToMScalar(1.0), SkDoubleToMScalar(1.0), SkDoubleToMScalar(0.0));
1828
1829 layer->SetTransform(singular_transform);
1830 layer->PushPropertiesTo(impl_layer.get());
1831
1832 EXPECT_FALSE(layer->transform_is_invertible());
1833 EXPECT_FALSE(impl_layer->transform_is_invertible());
1834
1835 gfx::Transform identity_transform;
1836
1837 EXPECT_CALL(*layer_tree_host_, SetNeedsUpdateLayers()).Times(1);
1838 layer->SetTransform(identity_transform);
1839 layer->OnTransformAnimated(singular_transform);
1840 layer->PushPropertiesTo(impl_layer.get());
1841 EXPECT_FALSE(layer->transform_is_invertible());
1842 EXPECT_FALSE(impl_layer->transform_is_invertible());
1843
1844 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
1845 }
1846
1847 class LayerTreeHostFactory { 1781 class LayerTreeHostFactory {
1848 public: 1782 public:
1849 LayerTreeHostFactory() : client_(FakeLayerTreeHostClient::DIRECT_3D) {} 1783 LayerTreeHostFactory() : client_(FakeLayerTreeHostClient::DIRECT_3D) {}
1850 1784
1851 std::unique_ptr<LayerTreeHost> Create() { 1785 std::unique_ptr<LayerTreeHost> Create() {
1852 return Create(LayerTreeSettings()); 1786 return Create(LayerTreeSettings());
1853 } 1787 }
1854 1788
1855 std::unique_ptr<LayerTreeHost> Create(LayerTreeSettings settings) { 1789 std::unique_ptr<LayerTreeHost> Create(LayerTreeSettings settings) {
1856 LayerTreeHost::InitParams params; 1790 LayerTreeHost::InitParams params;
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
2512 EXPECT_EQ(MutableProperty::kNone, impl_layer->mutable_properties()); 2446 EXPECT_EQ(MutableProperty::kNone, impl_layer->mutable_properties());
2513 2447
2514 test_layer->PushPropertiesTo(impl_layer.get()); 2448 test_layer->PushPropertiesTo(impl_layer.get());
2515 2449
2516 EXPECT_EQ(2lu, impl_layer->element_id()); 2450 EXPECT_EQ(2lu, impl_layer->element_id());
2517 EXPECT_EQ(MutableProperty::kTransform, impl_layer->mutable_properties()); 2451 EXPECT_EQ(MutableProperty::kTransform, impl_layer->mutable_properties());
2518 } 2452 }
2519 2453
2520 } // namespace 2454 } // namespace
2521 } // namespace cc 2455 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698