| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |