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

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

Issue 2581843002: Implement merging non-composited paint property nodes in the PACompositor. (Closed)
Patch Set: none Created 4 years 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "platform/graphics/paint/PropertyTreeState.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace blink {
10
11 class PropertyTreeStateTest : public ::testing::Test {};
12
13 TEST_F(PropertyTreeStateTest, TrasformOnEffectOnClip) {
14 RefPtr<TransformPaintPropertyNode> transform =
15 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(),
16 TransformationMatrix(),
17 FloatPoint3D());
18
19 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create(
20 ClipPaintPropertyNode::root(), TransformPaintPropertyNode::root(),
21 FloatRoundedRect());
22
23 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create(
24 EffectPaintPropertyNode::root(), TransformPaintPropertyNode::root(),
25 clip.get(), CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver);
26
27 PropertyTreeState state(
28 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(),
29 EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root());
30 EXPECT_EQ(PropertyTreeState::None, state.innermostNode());
31
32 state.setTransform(transform.get());
pdr. 2016/12/20 06:46:30 Are you creating the PropertyTreeState and then ca
chrishtr 2016/12/20 23:36:32 No good reason, except that in an earlier iteratio
33 state.setClip(clip.get());
34 state.setEffect(effect.get());
35 EXPECT_EQ(PropertyTreeState::Transform, state.innermostNode());
36
37 PropertyTreeStateIterator iterator(state);
38 EXPECT_EQ(PropertyTreeState::Effect, iterator.next()->innermostNode());
39 EXPECT_EQ(PropertyTreeState::Clip, iterator.next()->innermostNode());
40 EXPECT_EQ(PropertyTreeState::None, iterator.next()->innermostNode());
41 }
42
43 TEST_F(PropertyTreeStateTest, EffectOnClipOnTransform) {
44 RefPtr<TransformPaintPropertyNode> transform =
45 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(),
46 TransformationMatrix(),
47 FloatPoint3D());
48
49 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create(
50 ClipPaintPropertyNode::root(), transform.get(), FloatRoundedRect());
51
52 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create(
53 EffectPaintPropertyNode::root(), transform.get(), clip.get(),
54 CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver);
55
56 PropertyTreeState state(
57 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(),
58 EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root());
59
60 state.setTransform(transform.get());
61 state.setClip(clip.get());
62 state.setEffect(effect.get());
63 EXPECT_EQ(PropertyTreeState::Effect, state.innermostNode());
64
65 PropertyTreeStateIterator iterator(state);
66 EXPECT_EQ(PropertyTreeState::Clip, iterator.next()->innermostNode());
67 EXPECT_EQ(PropertyTreeState::Transform, iterator.next()->innermostNode());
68 EXPECT_EQ(PropertyTreeState::None, iterator.next()->innermostNode());
69 }
70
71 TEST_F(PropertyTreeStateTest, ClipOnEffectOnTransform) {
72 RefPtr<TransformPaintPropertyNode> transform =
73 TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(),
74 TransformationMatrix(),
75 FloatPoint3D());
76
77 RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create(
78 ClipPaintPropertyNode::root(), transform.get(), FloatRoundedRect());
79
80 RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create(
81 EffectPaintPropertyNode::root(), transform.get(),
82 ClipPaintPropertyNode::root(), CompositorFilterOperations(), 1.0,
83 SkBlendMode::kSrcOver);
84
85 PropertyTreeState state(
86 TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(),
87 EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root());
88
89 state.setTransform(transform.get());
90 state.setClip(clip.get());
91 state.setEffect(effect.get());
92 EXPECT_EQ(PropertyTreeState::Clip, state.innermostNode());
93
94 PropertyTreeStateIterator iterator(state);
95 EXPECT_EQ(PropertyTreeState::Effect, iterator.next()->innermostNode());
96 EXPECT_EQ(PropertyTreeState::Transform, iterator.next()->innermostNode());
97 EXPECT_EQ(PropertyTreeState::None, iterator.next()->innermostNode());
98 }
99
100 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698