| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef ObjectPaintProperties_h | 5 #ifndef ObjectPaintProperties_h |
| 6 #define ObjectPaintProperties_h | 6 #define ObjectPaintProperties_h |
| 7 | 7 |
| 8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
| 9 #include "platform/geometry/LayoutPoint.h" | 9 #include "platform/geometry/LayoutPoint.h" |
| 10 #include "platform/graphics/paint/ClipPaintPropertyNode.h" | 10 #include "platform/graphics/paint/ClipPaintPropertyNode.h" |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 } | 200 } |
| 201 template <typename... Args> | 201 template <typename... Args> |
| 202 void updateInnerBorderRadiusClip(Args&&... args) { | 202 void updateInnerBorderRadiusClip(Args&&... args) { |
| 203 updateProperty(m_innerBorderRadiusClip, std::forward<Args>(args)...); | 203 updateProperty(m_innerBorderRadiusClip, std::forward<Args>(args)...); |
| 204 } | 204 } |
| 205 template <typename... Args> | 205 template <typename... Args> |
| 206 void updateOverflowClip(Args&&... args) { | 206 void updateOverflowClip(Args&&... args) { |
| 207 updateProperty(m_overflowClip, std::forward<Args>(args)...); | 207 updateProperty(m_overflowClip, std::forward<Args>(args)...); |
| 208 } | 208 } |
| 209 | 209 |
| 210 #if DCHECK_IS_ON() |
| 211 // Used by FindPropertiesNeedingUpdate.h for recording the current properties. |
| 212 std::unique_ptr<ObjectPaintProperties> clone() const { |
| 213 std::unique_ptr<ObjectPaintProperties> cloned = create(); |
| 214 if (m_paintOffsetTranslation) |
| 215 cloned->m_paintOffsetTranslation = m_paintOffsetTranslation->clone(); |
| 216 if (m_transform) |
| 217 cloned->m_transform = m_transform->clone(); |
| 218 if (m_effect) |
| 219 cloned->m_effect = m_effect->clone(); |
| 220 if (m_cssClip) |
| 221 cloned->m_cssClip = m_cssClip->clone(); |
| 222 if (m_cssClipFixedPosition) |
| 223 cloned->m_cssClipFixedPosition = m_cssClipFixedPosition->clone(); |
| 224 if (m_innerBorderRadiusClip) |
| 225 cloned->m_innerBorderRadiusClip = m_innerBorderRadiusClip->clone(); |
| 226 if (m_overflowClip) |
| 227 cloned->m_overflowClip = m_overflowClip->clone(); |
| 228 if (m_perspective) |
| 229 cloned->m_perspective = m_perspective->clone(); |
| 230 if (m_svgLocalToBorderBoxTransform) { |
| 231 cloned->m_svgLocalToBorderBoxTransform = |
| 232 m_svgLocalToBorderBoxTransform->clone(); |
| 233 } |
| 234 if (m_scrollTranslation) |
| 235 cloned->m_scrollTranslation = m_scrollTranslation->clone(); |
| 236 if (m_scrollbarPaintOffset) |
| 237 cloned->m_scrollbarPaintOffset = m_scrollbarPaintOffset->clone(); |
| 238 if (m_scroll) |
| 239 cloned->m_scroll = m_scroll->clone(); |
| 240 if (m_localBorderBoxProperties) { |
| 241 auto& state = m_localBorderBoxProperties->propertyTreeState; |
| 242 cloned->m_localBorderBoxProperties = |
| 243 wrapUnique(new PropertyTreeStateWithOffset( |
| 244 m_localBorderBoxProperties->paintOffset, |
| 245 PropertyTreeState(state.transform(), state.clip(), state.effect(), |
| 246 state.scroll()))); |
| 247 } |
| 248 return cloned; |
| 249 } |
| 250 #endif |
| 251 |
| 210 private: | 252 private: |
| 211 ObjectPaintProperties() {} | 253 ObjectPaintProperties() {} |
| 212 | 254 |
| 213 template <typename PaintPropertyNode, typename... Args> | 255 template <typename PaintPropertyNode, typename... Args> |
| 214 void updateProperty(RefPtr<PaintPropertyNode>& field, Args&&... args) { | 256 void updateProperty(RefPtr<PaintPropertyNode>& field, Args&&... args) { |
| 215 if (field) | 257 if (field) |
| 216 field->update(std::forward<Args>(args)...); | 258 field->update(std::forward<Args>(args)...); |
| 217 else | 259 else |
| 218 field = PaintPropertyNode::create(std::forward<Args>(args)...); | 260 field = PaintPropertyNode::create(std::forward<Args>(args)...); |
| 219 } | 261 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 231 RefPtr<TransformPaintPropertyNode> m_scrollTranslation; | 273 RefPtr<TransformPaintPropertyNode> m_scrollTranslation; |
| 232 RefPtr<TransformPaintPropertyNode> m_scrollbarPaintOffset; | 274 RefPtr<TransformPaintPropertyNode> m_scrollbarPaintOffset; |
| 233 RefPtr<ScrollPaintPropertyNode> m_scroll; | 275 RefPtr<ScrollPaintPropertyNode> m_scroll; |
| 234 | 276 |
| 235 std::unique_ptr<PropertyTreeStateWithOffset> m_localBorderBoxProperties; | 277 std::unique_ptr<PropertyTreeStateWithOffset> m_localBorderBoxProperties; |
| 236 }; | 278 }; |
| 237 | 279 |
| 238 } // namespace blink | 280 } // namespace blink |
| 239 | 281 |
| 240 #endif // ObjectPaintProperties_h | 282 #endif // ObjectPaintProperties_h |
| OLD | NEW |