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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp

Issue 2808463003: SPv2: Limit compositor element id application to a single layer. (Closed)
Patch Set: Revise expectations slightly. Created 3 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
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp ('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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "platform/graphics/paint/PropertyTreeState.h" 5 #include "platform/graphics/paint/PropertyTreeState.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace blink { 9 namespace blink {
10 10
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 PropertyTreeStateIterator iterator(state); 148 PropertyTreeStateIterator iterator(state);
149 EXPECT_EQ(PropertyTreeState::kTransform, iterator.Next()->GetInnermostNode()); 149 EXPECT_EQ(PropertyTreeState::kTransform, iterator.Next()->GetInnermostNode());
150 EXPECT_EQ(PropertyTreeState::kClip, iterator.Next()->GetInnermostNode()); 150 EXPECT_EQ(PropertyTreeState::kClip, iterator.Next()->GetInnermostNode());
151 EXPECT_EQ(PropertyTreeState::kNone, iterator.Next()->GetInnermostNode()); 151 EXPECT_EQ(PropertyTreeState::kNone, iterator.Next()->GetInnermostNode());
152 } 152 }
153 153
154 TEST_F(PropertyTreeStateTest, CompositorElementIdNoElementIdOnAnyNode) { 154 TEST_F(PropertyTreeStateTest, CompositorElementIdNoElementIdOnAnyNode) {
155 PropertyTreeState state(TransformPaintPropertyNode::Root(), 155 PropertyTreeState state(TransformPaintPropertyNode::Root(),
156 ClipPaintPropertyNode::Root(), 156 ClipPaintPropertyNode::Root(),
157 EffectPaintPropertyNode::Root()); 157 EffectPaintPropertyNode::Root());
158 EXPECT_EQ(CompositorElementId(), state.GetCompositorElementId()); 158 EXPECT_EQ(CompositorElementId(),
159 state.GetCompositorElementId(CompositorElementIdSet()));
159 } 160 }
160 161
161 TEST_F(PropertyTreeStateTest, CompositorElementIdWithElementIdOnTransformNode) { 162 TEST_F(PropertyTreeStateTest, CompositorElementIdWithElementIdOnTransformNode) {
162 CompositorElementId expected_compositor_element_id = 163 CompositorElementId expected_compositor_element_id =
163 CompositorElementId(2, 0); 164 CompositorElementId(2, 0);
164 RefPtr<TransformPaintPropertyNode> transform = 165 RefPtr<TransformPaintPropertyNode> transform =
165 TransformPaintPropertyNode::Create(TransformPaintPropertyNode::Root(), 166 TransformPaintPropertyNode::Create(TransformPaintPropertyNode::Root(),
166 TransformationMatrix(), FloatPoint3D(), 167 TransformationMatrix(), FloatPoint3D(),
167 false, 0, kCompositingReasonNone, 168 false, 0, kCompositingReasonNone,
168 expected_compositor_element_id); 169 expected_compositor_element_id);
169 PropertyTreeState state(transform.Get(), ClipPaintPropertyNode::Root(), 170 PropertyTreeState state(transform.Get(), ClipPaintPropertyNode::Root(),
170 EffectPaintPropertyNode::Root()); 171 EffectPaintPropertyNode::Root());
171 EXPECT_EQ(expected_compositor_element_id, state.GetCompositorElementId()); 172 EXPECT_EQ(expected_compositor_element_id,
173 state.GetCompositorElementId(CompositorElementIdSet()));
172 } 174 }
173 175
174 TEST_F(PropertyTreeStateTest, CompositorElementIdWithElementIdOnEffectNode) { 176 TEST_F(PropertyTreeStateTest, CompositorElementIdWithElementIdOnEffectNode) {
175 CompositorElementId expected_compositor_element_id = 177 CompositorElementId expected_compositor_element_id =
176 CompositorElementId(2, 0); 178 CompositorElementId(2, 0);
177 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::Create( 179 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::Create(
178 EffectPaintPropertyNode::Root(), TransformPaintPropertyNode::Root(), 180 EffectPaintPropertyNode::Root(), TransformPaintPropertyNode::Root(),
179 ClipPaintPropertyNode::Root(), kColorFilterNone, 181 ClipPaintPropertyNode::Root(), kColorFilterNone,
180 CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver, 182 CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver,
181 kCompositingReasonNone, expected_compositor_element_id); 183 kCompositingReasonNone, expected_compositor_element_id);
182 PropertyTreeState state(TransformPaintPropertyNode::Root(), 184 PropertyTreeState state(TransformPaintPropertyNode::Root(),
183 ClipPaintPropertyNode::Root(), effect.Get()); 185 ClipPaintPropertyNode::Root(), effect.Get());
184 EXPECT_EQ(expected_compositor_element_id, state.GetCompositorElementId()); 186 EXPECT_EQ(expected_compositor_element_id,
187 state.GetCompositorElementId(CompositorElementIdSet()));
185 } 188 }
186 189
187 TEST_F(PropertyTreeStateTest, CompositorElementIdWithElementIdOnMultipleNodes) { 190 TEST_F(PropertyTreeStateTest, CompositorElementIdWithElementIdOnMultipleNodes) {
188 CompositorElementId expected_compositor_element_id = 191 CompositorElementId expected_compositor_element_id =
189 CompositorElementId(2, 0); 192 CompositorElementId(2, 0);
190 RefPtr<TransformPaintPropertyNode> transform = 193 RefPtr<TransformPaintPropertyNode> transform =
191 TransformPaintPropertyNode::Create(TransformPaintPropertyNode::Root(), 194 TransformPaintPropertyNode::Create(TransformPaintPropertyNode::Root(),
192 TransformationMatrix(), FloatPoint3D(), 195 TransformationMatrix(), FloatPoint3D(),
193 false, 0, kCompositingReasonNone, 196 false, 0, kCompositingReasonNone,
194 expected_compositor_element_id); 197 expected_compositor_element_id);
195 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::Create( 198 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::Create(
196 EffectPaintPropertyNode::Root(), TransformPaintPropertyNode::Root(), 199 EffectPaintPropertyNode::Root(), TransformPaintPropertyNode::Root(),
197 ClipPaintPropertyNode::Root(), kColorFilterNone, 200 ClipPaintPropertyNode::Root(), kColorFilterNone,
198 CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver, 201 CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver,
199 kCompositingReasonNone, expected_compositor_element_id); 202 kCompositingReasonNone, expected_compositor_element_id);
200 PropertyTreeState state(transform.Get(), ClipPaintPropertyNode::Root(), 203 PropertyTreeState state(transform.Get(), ClipPaintPropertyNode::Root(),
201 effect.Get()); 204 effect.Get());
202 EXPECT_EQ(expected_compositor_element_id, state.GetCompositorElementId()); 205 EXPECT_EQ(expected_compositor_element_id,
206 state.GetCompositorElementId(CompositorElementIdSet()));
207 }
208
209 TEST_F(PropertyTreeStateTest, CompositorElementIdWithDifferingElementIds) {
210 CompositorElementId first_compositor_element_id = CompositorElementId(2, 0);
211 CompositorElementId second_compositor_element_id = CompositorElementId(3, 0);
212 RefPtr<TransformPaintPropertyNode> transform =
213 TransformPaintPropertyNode::Create(TransformPaintPropertyNode::Root(),
214 TransformationMatrix(), FloatPoint3D(),
215 false, 0, kCompositingReasonNone,
216 first_compositor_element_id);
217 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::Create(
218 EffectPaintPropertyNode::Root(), TransformPaintPropertyNode::Root(),
219 ClipPaintPropertyNode::Root(), kColorFilterNone,
220 CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver,
221 kCompositingReasonNone, second_compositor_element_id);
222 PropertyTreeState state(transform.Get(), ClipPaintPropertyNode::Root(),
223 effect.Get());
224
225 CompositorElementIdSet composited_element_ids;
226 composited_element_ids.insert(first_compositor_element_id);
227 EXPECT_EQ(second_compositor_element_id,
228 state.GetCompositorElementId(composited_element_ids));
229
230 composited_element_ids.Clear();
231 composited_element_ids.insert(second_compositor_element_id);
232 EXPECT_EQ(first_compositor_element_id,
233 state.GetCompositorElementId(composited_element_ids));
203 } 234 }
204 235
205 } // namespace blink 236 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698