| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 SkRRect_DEFINED | 8 #ifndef SkRRect_DEFINED |
| 9 #define SkRRect_DEFINED | 9 #define SkRRect_DEFINED |
| 10 | 10 |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 * | 244 * |
| 245 * It is valid for dst == this. | 245 * It is valid for dst == this. |
| 246 */ | 246 */ |
| 247 void outset(SkScalar dx, SkScalar dy, SkRRect* dst) const { | 247 void outset(SkScalar dx, SkScalar dy, SkRRect* dst) const { |
| 248 this->inset(-dx, -dy, dst); | 248 this->inset(-dx, -dy, dst); |
| 249 } | 249 } |
| 250 void outset(SkScalar dx, SkScalar dy) { | 250 void outset(SkScalar dx, SkScalar dy) { |
| 251 this->inset(-dx, -dy, this); | 251 this->inset(-dx, -dy, this); |
| 252 } | 252 } |
| 253 | 253 |
| 254 /** |
| 255 * Returns true if 'rect' is wholy inside the RR, and both |
| 256 * are not empty. |
| 257 */ |
| 258 bool contains(const SkRect& rect) const; |
| 259 |
| 254 SkDEBUGCODE(void validate() const;) | 260 SkDEBUGCODE(void validate() const;) |
| 255 | 261 |
| 256 enum { | 262 enum { |
| 257 kSizeInMemory = 12 * sizeof(SkScalar) | 263 kSizeInMemory = 12 * sizeof(SkScalar) |
| 258 }; | 264 }; |
| 259 | 265 |
| 260 /** | 266 /** |
| 261 * Write the rrect into the specified buffer. This is guaranteed to always | 267 * Write the rrect into the specified buffer. This is guaranteed to always |
| 262 * write kSizeInMemory bytes, and that value is guaranteed to always be | 268 * write kSizeInMemory bytes, and that value is guaranteed to always be |
| 263 * a multiple of 4. Return kSizeInMemory. | 269 * a multiple of 4. Return kSizeInMemory. |
| 264 */ | 270 */ |
| 265 uint32_t writeToMemory(void* buffer) const; | 271 uint32_t writeToMemory(void* buffer) const; |
| 266 | 272 |
| 267 /** | 273 /** |
| 268 * Read the rrect from the specified buffer. This is guaranteed to always | 274 * Read the rrect from the specified buffer. This is guaranteed to always |
| 269 * read kSizeInMemory bytes, and that value is guaranteed to always be | 275 * read kSizeInMemory bytes, and that value is guaranteed to always be |
| 270 * a multiple of 4. Return kSizeInMemory. | 276 * a multiple of 4. Return kSizeInMemory. |
| 271 */ | 277 */ |
| 272 uint32_t readFromMemory(const void* buffer); | 278 uint32_t readFromMemory(const void* buffer); |
| 273 | 279 |
| 274 private: | 280 private: |
| 275 SkRect fRect; | 281 SkRect fRect; |
| 276 // Radii order is UL, UR, LR, LL. Use Corner enum to index into fRadii[] | 282 // Radii order is UL, UR, LR, LL. Use Corner enum to index into fRadii[] |
| 277 SkVector fRadii[4]; | 283 SkVector fRadii[4]; |
| 278 mutable Type fType; | 284 mutable Type fType; |
| 279 // TODO: add padding so we can use memcpy for flattening and not copy | 285 // TODO: add padding so we can use memcpy for flattening and not copy |
| 280 // uninitialized data | 286 // uninitialized data |
| 281 | 287 |
| 282 void computeType() const; | 288 void computeType() const; |
| 289 bool checkCornerContainment(SkScalar x, SkScalar y) const; |
| 283 | 290 |
| 284 // to access fRadii directly | 291 // to access fRadii directly |
| 285 friend class SkPath; | 292 friend class SkPath; |
| 286 }; | 293 }; |
| 287 | 294 |
| 288 #endif | 295 #endif |
| OLD | NEW |