| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef GrShape_DEFINED | 8 #ifndef GrShape_DEFINED |
| 9 #define GrShape_DEFINED | 9 #define GrShape_DEFINED |
| 10 | 10 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 | 108 |
| 109 /** | 109 /** |
| 110 * Returns a shape that has either applied the path effect or path effect an
d stroking | 110 * Returns a shape that has either applied the path effect or path effect an
d stroking |
| 111 * information from this shape's style to its geometry. Scale is used when a
pproximating the | 111 * information from this shape's style to its geometry. Scale is used when a
pproximating the |
| 112 * output geometry and typically is computed from the view matrix | 112 * output geometry and typically is computed from the view matrix |
| 113 */ | 113 */ |
| 114 GrShape applyStyle(GrStyle::Apply apply, SkScalar scale) { | 114 GrShape applyStyle(GrStyle::Apply apply, SkScalar scale) { |
| 115 return GrShape(*this, apply, scale); | 115 return GrShape(*this, apply, scale); |
| 116 } | 116 } |
| 117 | 117 |
| 118 /** Returns the unstyled geometry as a rrect if possible. */ |
| 118 bool asRRect(SkRRect* rrect) const { | 119 bool asRRect(SkRRect* rrect) const { |
| 119 if (Type::kRRect != fType) { | 120 if (Type::kRRect != fType) { |
| 120 return false; | 121 return false; |
| 121 } | 122 } |
| 122 if (rrect) { | 123 if (rrect) { |
| 123 *rrect = fRRect; | 124 *rrect = fRRect; |
| 124 } | 125 } |
| 125 return true; | 126 return true; |
| 126 } | 127 } |
| 127 | 128 |
| 129 /** Returns the unstyled geometry as a path. */ |
| 128 void asPath(SkPath* out) const { | 130 void asPath(SkPath* out) const { |
| 129 switch (fType) { | 131 switch (fType) { |
| 130 case Type::kEmpty: | 132 case Type::kEmpty: |
| 131 out->reset(); | 133 out->reset(); |
| 132 break; | 134 break; |
| 133 case Type::kRRect: | 135 case Type::kRRect: |
| 134 out->reset(); | 136 out->reset(); |
| 135 out->addRRect(fRRect); | 137 out->addRRect(fRRect); |
| 136 break; | 138 break; |
| 137 case Type::kPath: | 139 case Type::kPath: |
| 138 *out = *fPath.get(); | 140 *out = *fPath.get(); |
| 139 break; | 141 break; |
| 140 } | 142 } |
| 141 } | 143 } |
| 142 | 144 |
| 143 /** | 145 /** |
| 144 * Is it known that the shape has no unclosed contours. This means that it w
ill not have | 146 * Returns whether the geometry is empty. Note that applying the style could
produce a |
| 145 * any caps if stroked (modulo the effect of any path effect). | 147 * non-empty shape. |
| 148 */ |
| 149 bool isEmpty() const { return Type::kEmpty == fType; } |
| 150 |
| 151 /** |
| 152 * Is it known that the unstyled geometry has no unclosed contours. This mea
ns that it will |
| 153 * not have any caps if stroked (modulo the effect of any path effect). |
| 146 */ | 154 */ |
| 147 bool knownToBeClosed() const { | 155 bool knownToBeClosed() const { |
| 148 switch (fType) { | 156 switch (fType) { |
| 149 case Type::kEmpty: | 157 case Type::kEmpty: |
| 150 return true; | 158 return true; |
| 151 case Type::kRRect: | 159 case Type::kRRect: |
| 152 return true; | 160 return true; |
| 153 case Type::kPath: | 161 case Type::kPath: |
| 154 return false; | 162 return false; |
| 155 } | 163 } |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 return Type::kPath; | 236 return Type::kPath; |
| 229 } | 237 } |
| 230 | 238 |
| 231 Type fType; | 239 Type fType; |
| 232 SkRRect fRRect; | 240 SkRRect fRRect; |
| 233 SkTLazy<SkPath> fPath; | 241 SkTLazy<SkPath> fPath; |
| 234 GrStyle fStyle; | 242 GrStyle fStyle; |
| 235 SkAutoSTArray<8, uint32_t> fInheritedKey; | 243 SkAutoSTArray<8, uint32_t> fInheritedKey; |
| 236 }; | 244 }; |
| 237 #endif | 245 #endif |
| OLD | NEW |