| 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 #include "SkRRect.h" | 8 #include "SkRRect.h" |
| 9 #include "SkMatrix.h" | 9 #include "SkMatrix.h" |
| 10 | 10 |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 SkASSERT(sizeof(storage) == kSizeInMemory); | 438 SkASSERT(sizeof(storage) == kSizeInMemory); |
| 439 | 439 |
| 440 // we make a local copy, to ensure alignment before we cast | 440 // we make a local copy, to ensure alignment before we cast |
| 441 memcpy(storage, buffer, kSizeInMemory); | 441 memcpy(storage, buffer, kSizeInMemory); |
| 442 | 442 |
| 443 this->setRectRadii(*(const SkRect*)&storage[0], | 443 this->setRectRadii(*(const SkRect*)&storage[0], |
| 444 (const SkVector*)&storage[4]); | 444 (const SkVector*)&storage[4]); |
| 445 return kSizeInMemory; | 445 return kSizeInMemory; |
| 446 } | 446 } |
| 447 | 447 |
| 448 #ifdef SK_DEVELOPER | 448 #include "SkString.h" |
| 449 void SkRRect::dump() const { | 449 #include "SkStringUtils.h" |
| 450 SkDebugf("Rect: "); | 450 |
| 451 fRect.dump(); | 451 void SkRRect::dump(bool asHex) const { |
| 452 SkDebugf(" Corners: { TL: (%f, %f), TR: (%f, %f), BR: (%f, %f), BL: (%f, %f)
}", | 452 SkScalarAsStringType asType = asHex ? kHex_SkScalarAsStringType : kDec_SkSca
larAsStringType; |
| 453 fRadii[kUpperLeft_Corner].fX, fRadii[kUpperLeft_Corner].fY, | 453 |
| 454 fRadii[kUpperRight_Corner].fX, fRadii[kUpperRight_Corner].fY, | 454 fRect.dump(asHex); |
| 455 fRadii[kLowerRight_Corner].fX, fRadii[kLowerRight_Corner].fY, | 455 SkString line("const SkPoint corners[] = {\n"); |
| 456 fRadii[kLowerLeft_Corner].fX, fRadii[kLowerLeft_Corner].fY); | 456 for (int i = 0; i < 4; ++i) { |
| 457 SkString strX, strY; |
| 458 SkAppendScalar(&strX, fRadii[i].x(), asType); |
| 459 SkAppendScalar(&strY, fRadii[i].y(), asType); |
| 460 line.appendf(" { %s, %s },", strX.c_str(), strY.c_str()); |
| 461 if (asHex) { |
| 462 line.appendf(" /* %f %f */", fRadii[i].x(), fRadii[i].y()); |
| 463 } |
| 464 line.append("\n"); |
| 465 } |
| 466 line.append("};"); |
| 467 SkDebugf("%s\n", line.c_str()); |
| 457 } | 468 } |
| 458 #endif | |
| 459 | 469 |
| 460 /////////////////////////////////////////////////////////////////////////////// | 470 /////////////////////////////////////////////////////////////////////////////// |
| 461 | 471 |
| 462 #ifdef SK_DEBUG | 472 #ifdef SK_DEBUG |
| 463 void SkRRect::validate() const { | 473 void SkRRect::validate() const { |
| 464 bool allRadiiZero = (0 == fRadii[0].fX && 0 == fRadii[0].fY); | 474 bool allRadiiZero = (0 == fRadii[0].fX && 0 == fRadii[0].fY); |
| 465 bool allCornersSquare = (0 == fRadii[0].fX || 0 == fRadii[0].fY); | 475 bool allCornersSquare = (0 == fRadii[0].fX || 0 == fRadii[0].fY); |
| 466 bool allRadiiSame = true; | 476 bool allRadiiSame = true; |
| 467 | 477 |
| 468 for (int i = 1; i < 4; ++i) { | 478 for (int i = 1; i < 4; ++i) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 SkASSERT(!patchesOfNine); | 523 SkASSERT(!patchesOfNine); |
| 514 break; | 524 break; |
| 515 case kUnknown_Type: | 525 case kUnknown_Type: |
| 516 // no limits on this | 526 // no limits on this |
| 517 break; | 527 break; |
| 518 } | 528 } |
| 519 } | 529 } |
| 520 #endif // SK_DEBUG | 530 #endif // SK_DEBUG |
| 521 | 531 |
| 522 /////////////////////////////////////////////////////////////////////////////// | 532 /////////////////////////////////////////////////////////////////////////////// |
| OLD | NEW |