OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
10 * disclaimer. | 10 * disclaimer. |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 | 94 |
95 class ShapeClipPathOperation final : public ClipPathOperation { | 95 class ShapeClipPathOperation final : public ClipPathOperation { |
96 public: | 96 public: |
97 static PassRefPtr<ShapeClipPathOperation> create(PassRefPtr<BasicShape> shap
e) | 97 static PassRefPtr<ShapeClipPathOperation> create(PassRefPtr<BasicShape> shap
e) |
98 { | 98 { |
99 return adoptRef(new ShapeClipPathOperation(shape)); | 99 return adoptRef(new ShapeClipPathOperation(shape)); |
100 } | 100 } |
101 | 101 |
102 const BasicShape* basicShape() const { return m_shape.get(); } | 102 const BasicShape* basicShape() const { return m_shape.get(); } |
103 bool isValid() const { return m_shape.get(); } | 103 bool isValid() const { return m_shape.get(); } |
104 WindRule windRule() const { return m_shape->windRule(); } | |
105 const Path& path(const FloatRect& boundingRect) | 104 const Path& path(const FloatRect& boundingRect) |
106 { | 105 { |
107 ASSERT(m_shape); | 106 ASSERT(m_shape); |
108 m_path.clear(); | 107 m_path.clear(); |
109 m_path = adoptPtr(new Path); | 108 m_path = adoptPtr(new Path); |
110 m_shape->path(*m_path, boundingRect); | 109 m_shape->path(*m_path, boundingRect); |
111 m_path->setWindRule(windRule()); | 110 m_path->setWindRule(m_shape->windRule()); |
112 return *m_path; | 111 return *m_path; |
113 } | 112 } |
114 | 113 |
115 private: | 114 private: |
116 bool operator==(const ClipPathOperation&) const override; | 115 bool operator==(const ClipPathOperation&) const override; |
117 | 116 |
118 ShapeClipPathOperation(PassRefPtr<BasicShape> shape) | 117 ShapeClipPathOperation(PassRefPtr<BasicShape> shape) |
119 : ClipPathOperation(SHAPE) | 118 : ClipPathOperation(SHAPE) |
120 , m_shape(shape) | 119 , m_shape(shape) |
121 { | 120 { |
(...skipping 11 matching lines...) Expand all Loading... |
133 return false; | 132 return false; |
134 BasicShape* otherShape = toShapeClipPathOperation(o).m_shape.get(); | 133 BasicShape* otherShape = toShapeClipPathOperation(o).m_shape.get(); |
135 if (!m_shape.get() || !otherShape) | 134 if (!m_shape.get() || !otherShape) |
136 return static_cast<bool>(m_shape.get()) == static_cast<bool>(otherShape)
; | 135 return static_cast<bool>(m_shape.get()) == static_cast<bool>(otherShape)
; |
137 return *m_shape == *otherShape; | 136 return *m_shape == *otherShape; |
138 } | 137 } |
139 | 138 |
140 } | 139 } |
141 | 140 |
142 #endif // ClipPathOperation_h | 141 #endif // ClipPathOperation_h |
OLD | NEW |