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

Side by Side Diff: cc/layer_impl_unittest.cc

Issue 12774006: cc: Chromify Layer and LayerImpl classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: MoreAndroidCompilings Created 7 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « cc/layer_impl.cc ('k') | cc/layer_iterator.h » ('j') | 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/layer_impl.h" 5 #include "cc/layer_impl.h"
6 6
7 #include "cc/layer_tree_impl.h" 7 #include "cc/layer_tree_impl.h"
8 #include "cc/single_thread_proxy.h" 8 #include "cc/single_thread_proxy.h"
9 #include "cc/test/fake_impl_proxy.h" 9 #include "cc/test/fake_impl_proxy.h"
10 #include "cc/test/fake_layer_tree_host_impl.h" 10 #include "cc/test/fake_layer_tree_host_impl.h"
11 #include "cc/test/fake_output_surface.h" 11 #include "cc/test/fake_output_surface.h"
12 #include "testing/gmock/include/gmock/gmock.h" 12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperation. h" 14 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperation. h"
15 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h" 15 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h"
16 #include "third_party/skia/include/effects/SkBlurImageFilter.h" 16 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
17 17
18 using namespace WebKit; 18 using namespace WebKit;
19 19
20 namespace cc { 20 namespace cc {
21 namespace { 21 namespace {
22 22
23 #define EXECUTE_AND_VERIFY_SUBTREE_CHANGED(codeToTest) \ 23 #define EXECUTE_AND_VERIFY_SUBTREE_CHANGED(codeToTest) \
24 root->resetAllChangeTrackingForSubtree(); \ 24 root->ResetAllChangeTrackingForSubtree(); \
25 codeToTest; \ 25 codeToTest; \
26 EXPECT_TRUE(root->layerPropertyChanged()); \ 26 EXPECT_TRUE(root->LayerPropertyChanged()); \
27 EXPECT_TRUE(child->layerPropertyChanged()); \ 27 EXPECT_TRUE(child->LayerPropertyChanged()); \
28 EXPECT_TRUE(grandChild->layerPropertyChanged()); \ 28 EXPECT_TRUE(grandChild->LayerPropertyChanged()); \
29 EXPECT_FALSE(root->layerSurfacePropertyChanged()) 29 EXPECT_FALSE(root->LayerSurfacePropertyChanged())
30 30
31 31
32 #define EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(codeToTest) \ 32 #define EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(codeToTest) \
33 root->resetAllChangeTrackingForSubtree(); \ 33 root->ResetAllChangeTrackingForSubtree(); \
34 codeToTest; \ 34 codeToTest; \
35 EXPECT_FALSE(root->layerPropertyChanged()); \ 35 EXPECT_FALSE(root->LayerPropertyChanged()); \
36 EXPECT_FALSE(child->layerPropertyChanged()); \ 36 EXPECT_FALSE(child->LayerPropertyChanged()); \
37 EXPECT_FALSE(grandChild->layerPropertyChanged()); \ 37 EXPECT_FALSE(grandChild->LayerPropertyChanged()); \
38 EXPECT_FALSE(root->layerSurfacePropertyChanged()) 38 EXPECT_FALSE(root->LayerSurfacePropertyChanged())
39 39
40 #define EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(codeToTest) \ 40 #define EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(codeToTest) \
41 root->resetAllChangeTrackingForSubtree(); \ 41 root->ResetAllChangeTrackingForSubtree(); \
42 codeToTest; \ 42 codeToTest; \
43 EXPECT_TRUE(root->layerPropertyChanged()); \ 43 EXPECT_TRUE(root->LayerPropertyChanged()); \
44 EXPECT_FALSE(child->layerPropertyChanged()); \ 44 EXPECT_FALSE(child->LayerPropertyChanged()); \
45 EXPECT_FALSE(grandChild->layerPropertyChanged()); \ 45 EXPECT_FALSE(grandChild->LayerPropertyChanged()); \
46 EXPECT_FALSE(root->layerSurfacePropertyChanged()) 46 EXPECT_FALSE(root->LayerSurfacePropertyChanged())
47 47
48 #define EXECUTE_AND_VERIFY_ONLY_SURFACE_CHANGED(codeToTest) \ 48 #define EXECUTE_AND_VERIFY_ONLY_SURFACE_CHANGED(codeToTest) \
49 root->resetAllChangeTrackingForSubtree(); \ 49 root->ResetAllChangeTrackingForSubtree(); \
50 codeToTest; \ 50 codeToTest; \
51 EXPECT_FALSE(root->layerPropertyChanged()); \ 51 EXPECT_FALSE(root->LayerPropertyChanged()); \
52 EXPECT_FALSE(child->layerPropertyChanged()); \ 52 EXPECT_FALSE(child->LayerPropertyChanged()); \
53 EXPECT_FALSE(grandChild->layerPropertyChanged()); \ 53 EXPECT_FALSE(grandChild->LayerPropertyChanged()); \
54 EXPECT_TRUE(root->layerSurfacePropertyChanged()) 54 EXPECT_TRUE(root->LayerSurfacePropertyChanged())
55 55
56 #define VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(codeToTest) \ 56 #define VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(codeToTest) \
57 root->resetAllChangeTrackingForSubtree(); \ 57 root->ResetAllChangeTrackingForSubtree(); \
58 hostImpl.forcePrepareToDraw(); \ 58 hostImpl.forcePrepareToDraw(); \
59 EXPECT_FALSE(hostImpl.activeTree()->needs_update_draw_properties());\ 59 EXPECT_FALSE(hostImpl.activeTree()->needs_update_draw_properties());\
60 codeToTest; \ 60 codeToTest; \
61 EXPECT_TRUE(hostImpl.activeTree()->needs_update_draw_properties()); 61 EXPECT_TRUE(hostImpl.activeTree()->needs_update_draw_properties());
62 62
63 #define VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(codeToTest) \ 63 #define VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(codeToTest) \
64 root->resetAllChangeTrackingForSubtree(); \ 64 root->ResetAllChangeTrackingForSubtree(); \
65 hostImpl.forcePrepareToDraw(); \ 65 hostImpl.forcePrepareToDraw(); \
66 EXPECT_FALSE(hostImpl.activeTree()->needs_update_draw_properties());\ 66 EXPECT_FALSE(hostImpl.activeTree()->needs_update_draw_properties());\
67 codeToTest; \ 67 codeToTest; \
68 EXPECT_FALSE(hostImpl.activeTree()->needs_update_draw_properties()); 68 EXPECT_FALSE(hostImpl.activeTree()->needs_update_draw_properties());
69 69
70 TEST(LayerImplTest, verifyLayerChangesAreTrackedProperly) 70 TEST(LayerImplTest, verifyLayerChangesAreTrackedProperly)
71 { 71 {
72 // 72 //
73 // This test checks that layerPropertyChanged() has the correct behavior. 73 // This test checks that layerPropertyChanged() has the correct behavior.
74 // 74 //
75 75
76 // The constructor on this will fake that we are on the correct thread. 76 // The constructor on this will fake that we are on the correct thread.
77 // Create a simple LayerImpl tree: 77 // Create a simple LayerImpl tree:
78 FakeImplProxy proxy; 78 FakeImplProxy proxy;
79 FakeLayerTreeHostImpl hostImpl(&proxy); 79 FakeLayerTreeHostImpl hostImpl(&proxy);
80 EXPECT_TRUE(hostImpl.initializeRenderer(createFakeOutputSurface())); 80 EXPECT_TRUE(hostImpl.initializeRenderer(createFakeOutputSurface()));
81 scoped_ptr<LayerImpl> root = LayerImpl::create(hostImpl.activeTree(), 1); 81 scoped_ptr<LayerImpl> root = LayerImpl::Create(hostImpl.activeTree(), 1);
82 root->addChild(LayerImpl::create(hostImpl.activeTree(), 2)); 82 root->AddChild(LayerImpl::Create(hostImpl.activeTree(), 2));
83 LayerImpl* child = root->children()[0]; 83 LayerImpl* child = root->children()[0];
84 child->addChild(LayerImpl::create(hostImpl.activeTree(), 3)); 84 child->AddChild(LayerImpl::Create(hostImpl.activeTree(), 3));
85 LayerImpl* grandChild = child->children()[0]; 85 LayerImpl* grandChild = child->children()[0];
86 86
87 // Adding children is an internal operation and should not mark layers as ch anged. 87 // Adding children is an internal operation and should not mark layers as ch anged.
88 EXPECT_FALSE(root->layerPropertyChanged()); 88 EXPECT_FALSE(root->LayerPropertyChanged());
89 EXPECT_FALSE(child->layerPropertyChanged()); 89 EXPECT_FALSE(child->LayerPropertyChanged());
90 EXPECT_FALSE(grandChild->layerPropertyChanged()); 90 EXPECT_FALSE(grandChild->LayerPropertyChanged());
91 91
92 gfx::PointF arbitraryPointF = gfx::PointF(0.125f, 0.25f); 92 gfx::PointF arbitraryPointF = gfx::PointF(0.125f, 0.25f);
93 float arbitraryNumber = 0.352f; 93 float arbitraryNumber = 0.352f;
94 gfx::Size arbitrarySize = gfx::Size(111, 222); 94 gfx::Size arbitrarySize = gfx::Size(111, 222);
95 gfx::Point arbitraryPoint = gfx::Point(333, 444); 95 gfx::Point arbitraryPoint = gfx::Point(333, 444);
96 gfx::Vector2d arbitraryVector2d = gfx::Vector2d(111, 222); 96 gfx::Vector2d arbitraryVector2d = gfx::Vector2d(111, 222);
97 gfx::Rect arbitraryRect = gfx::Rect(arbitraryPoint, arbitrarySize); 97 gfx::Rect arbitraryRect = gfx::Rect(arbitraryPoint, arbitrarySize);
98 gfx::RectF arbitraryRectF = gfx::RectF(arbitraryPointF, gfx::SizeF(1.234f, 5 .678f)); 98 gfx::RectF arbitraryRectF = gfx::RectF(arbitraryPointF, gfx::SizeF(1.234f, 5 .678f));
99 SkColor arbitraryColor = SkColorSetRGB(10, 20, 30); 99 SkColor arbitraryColor = SkColorSetRGB(10, 20, 30);
100 gfx::Transform arbitraryTransform; 100 gfx::Transform arbitraryTransform;
101 arbitraryTransform.Scale3d(0.1, 0.2, 0.3); 101 arbitraryTransform.Scale3d(0.1, 0.2, 0.3);
102 WebFilterOperations arbitraryFilters; 102 WebFilterOperations arbitraryFilters;
103 arbitraryFilters.append(WebFilterOperation::createOpacityFilter(0.5)); 103 arbitraryFilters.append(WebFilterOperation::createOpacityFilter(0.5));
104 skia::RefPtr<SkImageFilter> arbitraryFilter = skia::AdoptRef(new SkBlurImage Filter(SK_Scalar1, SK_Scalar1)); 104 skia::RefPtr<SkImageFilter> arbitraryFilter = skia::AdoptRef(new SkBlurImage Filter(SK_Scalar1, SK_Scalar1));
105 105
106 // These properties are internal, and should not be considered "change" when they are used. 106 // These properties are internal, and should not be considered "change" when they are used.
107 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setUpdateRect(arbitraryRectF )); 107 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->set_update_rect(arbitraryRec tF));
108 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setMaxScrollOffset(arbitrary Vector2d)); 108 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetMaxScrollOffset(arbitrary Vector2d));
109 109
110 // Changing these properties affects the entire subtree of layers. 110 // Changing these properties affects the entire subtree of layers.
111 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setAnchorPoint(arbitraryPointF)); 111 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPoint(arbitraryPointF));
112 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setAnchorPointZ(arbitraryNumber)); 112 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetAnchorPointZ(arbitraryNumber));
113 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setFilters(arbitraryFilters)); 113 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(arbitraryFilters));
114 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setFilters(WebFilterOperations())); 114 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilters(WebFilterOperations()));
115 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setFilter(arbitraryFilter)); 115 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetFilter(arbitraryFilter));
116 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setMaskLayer(LayerImpl::create(host Impl.activeTree(), 4))); 116 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMaskLayer(LayerImpl::Create(host Impl.activeTree(), 4)));
117 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setMasksToBounds(true)); 117 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetMasksToBounds(true));
118 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setContentsOpaque(true)); 118 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetContentsOpaque(true));
119 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setReplicaLayer(LayerImpl::create(h ostImpl.activeTree(), 5))); 119 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetReplicaLayer(LayerImpl::Create(h ostImpl.activeTree(), 5)));
120 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setPosition(arbitraryPointF)); 120 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPosition(arbitraryPointF));
121 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setPreserves3D(true)); 121 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetPreserves3d(true));
122 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setDoubleSided(false)); // construc tor initializes it to "true". 122 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetDoubleSided(false)); // construc tor initializes it to "true".
123 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->scrollBy(arbitraryVector2d)); 123 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->ScrollBy(arbitraryVector2d));
124 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setScrollDelta(gfx::Vector2d())); 124 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollDelta(gfx::Vector2d()));
125 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setScrollOffset(arbitraryVector2d)) ; 125 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetScrollOffset(arbitraryVector2d)) ;
126 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setImplTransform(arbitraryTransform )); 126 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetImplTransform(arbitraryTransform ));
127 127
128 // Changing these properties only affects the layer itself. 128 // Changing these properties only affects the layer itself.
129 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->setContentBounds(arbitrarySize)) ; 129 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetContentBounds(arbitrarySize)) ;
130 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->setContentsScale(arbitraryNumber , arbitraryNumber)); 130 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetContentsScale(arbitraryNumber , arbitraryNumber));
131 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->setDrawsContent(true)); 131 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetDrawsContent(true));
132 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->setBackgroundColor(SK_ColorGRAY) ); 132 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBackgroundColor(SK_ColorGRAY) );
133 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->setBackgroundFilters(arbitraryFi lters)); 133 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBackgroundFilters(arbitraryFi lters));
134 134
135 // Changing these properties only affects how render surface is drawn 135 // Changing these properties only affects how render surface is drawn
136 EXECUTE_AND_VERIFY_ONLY_SURFACE_CHANGED(root->setOpacity(arbitraryNumber)); 136 EXECUTE_AND_VERIFY_ONLY_SURFACE_CHANGED(root->SetOpacity(arbitraryNumber));
137 EXECUTE_AND_VERIFY_ONLY_SURFACE_CHANGED(root->setTransform(arbitraryTransfor m)); 137 EXECUTE_AND_VERIFY_ONLY_SURFACE_CHANGED(root->SetTransform(arbitraryTransfor m));
138 138
139 // Special case: check that sublayer transform changes all layer's descendan ts, but not the layer itself. 139 // Special case: check that sublayer transform changes all layer's descendan ts, but not the layer itself.
140 root->resetAllChangeTrackingForSubtree(); 140 root->ResetAllChangeTrackingForSubtree();
141 root->setSublayerTransform(arbitraryTransform); 141 root->SetSublayerTransform(arbitraryTransform);
142 EXPECT_FALSE(root->layerPropertyChanged()); 142 EXPECT_FALSE(root->LayerPropertyChanged());
143 EXPECT_TRUE(child->layerPropertyChanged()); 143 EXPECT_TRUE(child->LayerPropertyChanged());
144 EXPECT_TRUE(grandChild->layerPropertyChanged()); 144 EXPECT_TRUE(grandChild->LayerPropertyChanged());
145 145
146 // Special case: check that setBounds changes behavior depending on masksToB ounds. 146 // Special case: check that setBounds changes behavior depending on masksToB ounds.
147 root->setMasksToBounds(false); 147 root->SetMasksToBounds(false);
148 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->setBounds(gfx::Size(135, 246))); 148 EXECUTE_AND_VERIFY_ONLY_LAYER_CHANGED(root->SetBounds(gfx::Size(135, 246)));
149 root->setMasksToBounds(true); 149 root->SetMasksToBounds(true);
150 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->setBounds(arbitrarySize)); // shoul d be a different size than previous call, to ensure it marks tree changed. 150 EXECUTE_AND_VERIFY_SUBTREE_CHANGED(root->SetBounds(arbitrarySize)); // shoul d be a different size than previous call, to ensure it marks tree changed.
151 151
152 // After setting all these properties already, setting to the exact same val ues again should 152 // After setting all these properties already, setting to the exact same val ues again should
153 // not cause any change. 153 // not cause any change.
154 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setAnchorPoint(arbitraryPoin tF)); 154 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetAnchorPoint(arbitraryPoin tF));
155 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setAnchorPointZ(arbitraryNum ber)); 155 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetAnchorPointZ(arbitraryNum ber));
156 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setMasksToBounds(true)); 156 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetMasksToBounds(true));
157 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setPosition(arbitraryPointF) ); 157 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetPosition(arbitraryPointF) );
158 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setPreserves3D(true)); 158 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetPreserves3d(true));
159 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setTransform(arbitraryTransf orm)); 159 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetTransform(arbitraryTransf orm));
160 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setDoubleSided(false)); // c onstructor initializes it to "true". 160 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDoubleSided(false)); // c onstructor initializes it to "true".
161 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setScrollDelta(gfx::Vector2d ())); 161 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetScrollDelta(gfx::Vector2d ()));
162 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setScrollOffset(arbitraryVec tor2d)); 162 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetScrollOffset(arbitraryVec tor2d));
163 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setImplTransform(arbitraryTr ansform)); 163 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetImplTransform(arbitraryTr ansform));
164 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setContentBounds(arbitrarySi ze)); 164 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentBounds(arbitrarySi ze));
165 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setContentsScale(arbitraryNu mber, arbitraryNumber)); 165 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsScale(arbitraryNu mber, arbitraryNumber));
166 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setContentsOpaque(true)); 166 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetContentsOpaque(true));
167 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setOpacity(arbitraryNumber)) ; 167 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetOpacity(arbitraryNumber)) ;
168 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setDrawsContent(true)); 168 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetDrawsContent(true));
169 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setSublayerTransform(arbitra ryTransform)); 169 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetSublayerTransform(arbitra ryTransform));
170 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->setBounds(arbitrarySize)); 170 EXECUTE_AND_VERIFY_SUBTREE_DID_NOT_CHANGE(root->SetBounds(arbitrarySize));
171 } 171 }
172 172
173 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties) 173 TEST(LayerImplTest, VerifyNeedsUpdateDrawProperties)
174 { 174 {
175 FakeImplProxy proxy; 175 FakeImplProxy proxy;
176 FakeLayerTreeHostImpl hostImpl(&proxy); 176 FakeLayerTreeHostImpl hostImpl(&proxy);
177 EXPECT_TRUE(hostImpl.initializeRenderer(createFakeOutputSurface())); 177 EXPECT_TRUE(hostImpl.initializeRenderer(createFakeOutputSurface()));
178 scoped_ptr<LayerImpl> root = LayerImpl::create(hostImpl.activeTree(), 1); 178 scoped_ptr<LayerImpl> root = LayerImpl::Create(hostImpl.activeTree(), 1);
179 179
180 gfx::PointF arbitraryPointF = gfx::PointF(0.125f, 0.25f); 180 gfx::PointF arbitraryPointF = gfx::PointF(0.125f, 0.25f);
181 float arbitraryNumber = 0.352f; 181 float arbitraryNumber = 0.352f;
182 gfx::Size arbitrarySize = gfx::Size(111, 222); 182 gfx::Size arbitrarySize = gfx::Size(111, 222);
183 gfx::Point arbitraryPoint = gfx::Point(333, 444); 183 gfx::Point arbitraryPoint = gfx::Point(333, 444);
184 gfx::Vector2d arbitraryVector2d = gfx::Vector2d(111, 222); 184 gfx::Vector2d arbitraryVector2d = gfx::Vector2d(111, 222);
185 gfx::Vector2d largeVector2d = gfx::Vector2d(1000, 1000); 185 gfx::Vector2d largeVector2d = gfx::Vector2d(1000, 1000);
186 gfx::Rect arbitraryRect = gfx::Rect(arbitraryPoint, arbitrarySize); 186 gfx::Rect arbitraryRect = gfx::Rect(arbitraryPoint, arbitrarySize);
187 gfx::RectF arbitraryRectF = gfx::RectF(arbitraryPointF, gfx::SizeF(1.234f, 5 .678f)); 187 gfx::RectF arbitraryRectF = gfx::RectF(arbitraryPointF, gfx::SizeF(1.234f, 5 .678f));
188 SkColor arbitraryColor = SkColorSetRGB(10, 20, 30); 188 SkColor arbitraryColor = SkColorSetRGB(10, 20, 30);
189 gfx::Transform arbitraryTransform; 189 gfx::Transform arbitraryTransform;
190 arbitraryTransform.Scale3d(0.1, 0.2, 0.3); 190 arbitraryTransform.Scale3d(0.1, 0.2, 0.3);
191 WebFilterOperations arbitraryFilters; 191 WebFilterOperations arbitraryFilters;
192 arbitraryFilters.append(WebFilterOperation::createOpacityFilter(0.5)); 192 arbitraryFilters.append(WebFilterOperation::createOpacityFilter(0.5));
193 skia::RefPtr<SkImageFilter> arbitraryFilter = skia::AdoptRef(new SkBlurImage Filter(SK_Scalar1, SK_Scalar1)); 193 skia::RefPtr<SkImageFilter> arbitraryFilter = skia::AdoptRef(new SkBlurImage Filter(SK_Scalar1, SK_Scalar1));
194 194
195 // Related filter functions. 195 // Related filter functions.
196 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setFilters(arbitraryFilters)); 196 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitraryFilters));
197 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setFilters(arbitraryFilters)); 197 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(arbitraryFilters));
198 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setFilters(WebFilterOperations())) ; 198 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilters(WebFilterOperations())) ;
199 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setFilter(arbitraryFilter)); 199 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilter(arbitraryFilter));
200 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setFilter(arbitraryFilter)); 200 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilter(arbitraryFilter));
201 201
202 // Related scrolling functions. 202 // Related scrolling functions.
203 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setMaxScrollOffset(largeVector2d)) ; 203 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMaxScrollOffset(largeVector2d)) ;
204 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setMaxScrollOffset(largeVector2 d)); 204 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMaxScrollOffset(largeVector2 d));
205 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->scrollBy(arbitraryVector2d)); 205 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(arbitraryVector2d));
206 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->scrollBy(gfx::Vector2d())); 206 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->ScrollBy(gfx::Vector2d()));
207 root->setScrollDelta(gfx::Vector2d(0, 0)); 207 root->SetScrollDelta(gfx::Vector2d(0, 0));
208 hostImpl.forcePrepareToDraw(); 208 hostImpl.forcePrepareToDraw();
209 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setScrollDelta(arbitraryVector2d)) ; 209 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollDelta(arbitraryVector2d)) ;
210 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setScrollDelta(arbitraryVector2 d)); 210 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollDelta(arbitraryVector2 d));
211 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setScrollOffset(arbitraryVector2d) ); 211 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollOffset(arbitraryVector2d) );
212 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setScrollOffset(arbitraryVector 2d)); 212 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetScrollOffset(arbitraryVector 2d));
213 213
214 // Unrelated functions, always set to new values, always set needs update. 214 // Unrelated functions, always set to new values, always set needs update.
215 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setAnchorPointZ(arbitraryNumber)); 215 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetAnchorPointZ(arbitraryNumber));
216 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setMaskLayer(LayerImpl::create(hos tImpl.activeTree(), 4))); 216 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMaskLayer(LayerImpl::Create(hos tImpl.activeTree(), 4)));
217 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setMasksToBounds(true)); 217 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMasksToBounds(true));
218 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setContentsOpaque(true)); 218 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetContentsOpaque(true));
219 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setReplicaLayer(LayerImpl::create( hostImpl.activeTree(), 5))); 219 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetReplicaLayer(LayerImpl::Create( hostImpl.activeTree(), 5)));
220 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setPosition(arbitraryPointF)); 220 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetPosition(arbitraryPointF));
221 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setPreserves3D(true)); 221 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetPreserves3d(true));
222 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setDoubleSided(false)); // constru ctor initializes it to "true". 222 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetDoubleSided(false)); // constru ctor initializes it to "true".
223 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setImplTransform(arbitraryTransfor m)); 223 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetImplTransform(arbitraryTransfor m));
224 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setContentBounds(arbitrarySize)); 224 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetContentBounds(arbitrarySize));
225 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setContentsScale(arbitraryNumber, arbitraryNumber)); 225 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetContentsScale(arbitraryNumber, arbitraryNumber));
226 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setDrawsContent(true)); 226 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetDrawsContent(true));
227 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setBackgroundColor(SK_ColorGRAY)); 227 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBackgroundColor(SK_ColorGRAY));
228 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setBackgroundFilters(arbitraryFilt ers)); 228 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBackgroundFilters(arbitraryFilt ers));
229 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setOpacity(arbitraryNumber)); 229 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetOpacity(arbitraryNumber));
230 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setTransform(arbitraryTransform)); 230 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetTransform(arbitraryTransform));
231 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setSublayerTransform(arbitraryTran sform)); 231 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetSublayerTransform(arbitraryTran sform));
232 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->setBounds(arbitrarySize)); 232 VERIFY_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBounds(arbitrarySize));
233 233
234 // Unrelated functions, set to the same values, no needs update. 234 // Unrelated functions, set to the same values, no needs update.
235 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setAnchorPointZ(arbitraryNumber )); 235 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetAnchorPointZ(arbitraryNumber ));
236 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setFilter(arbitraryFilter)); 236 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetFilter(arbitraryFilter));
237 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setMasksToBounds(true)); 237 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetMasksToBounds(true));
238 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setContentsOpaque(true)); 238 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetContentsOpaque(true));
239 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setPosition(arbitraryPointF)); 239 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetPosition(arbitraryPointF));
240 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setPreserves3D(true)); 240 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetPreserves3d(true));
241 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setDoubleSided(false)); // cons tructor initializes it to "true". 241 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetDoubleSided(false)); // cons tructor initializes it to "true".
242 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setImplTransform(arbitraryTrans form)); 242 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetImplTransform(arbitraryTrans form));
243 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setContentBounds(arbitrarySize) ); 243 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetContentBounds(arbitrarySize) );
244 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setContentsScale(arbitraryNumbe r, arbitraryNumber)); 244 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetContentsScale(arbitraryNumbe r, arbitraryNumber));
245 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setDrawsContent(true)); 245 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetDrawsContent(true));
246 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setBackgroundColor(SK_ColorGRAY )); 246 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBackgroundColor(SK_ColorGRAY ));
247 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setBackgroundFilters(arbitraryF ilters)); 247 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBackgroundFilters(arbitraryF ilters));
248 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setOpacity(arbitraryNumber)); 248 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetOpacity(arbitraryNumber));
249 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setTransform(arbitraryTransform )); 249 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetTransform(arbitraryTransform ));
250 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setSublayerTransform(arbitraryT ransform)); 250 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetSublayerTransform(arbitraryT ransform));
251 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->setBounds(arbitrarySize)); 251 VERIFY_NO_NEEDS_UPDATE_DRAW_PROPERTIES(root->SetBounds(arbitrarySize));
252 } 252 }
253 253
254 } // namespace 254 } // namespace
255 } // namespace cc 255 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_impl.cc ('k') | cc/layer_iterator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698