73 kLastType = kComplex_Type,
78 return static_cast<Type>(fType);
83 inline bool isEmpty()
const {
return kEmpty_Type == this->getType(); }
84 inline bool isRect()
const {
return kRect_Type == this->getType(); }
85 inline bool isOval()
const {
return kOval_Type == this->getType(); }
86 inline bool isSimple()
const {
return kSimple_Type == this->getType(); }
87 inline bool isNinePatch()
const {
return kNinePatch_Type == this->getType(); }
88 inline bool isComplex()
const {
return kComplex_Type == this->getType(); }
127 if (!this->initializeRect(rect)) {
131 memset(fRadii, 0,
sizeof(fRadii));
192 void setOval(
const SkRect& oval);
342 this->
inset(dx, dy,
this);
361 this->
inset(-dx, -dy, dst);
379 this->
inset(-dx, -dy,
this);
420 bool isValid()
const;
422 static constexpr size_t kSizeInMemory = 12 *
sizeof(
SkScalar);
432 size_t writeToMemory(
void*
buffer)
const;
444 size_t readFromMemory(
const void*
buffer,
size_t length);
468 void dump(
bool asHex)
const;
469 SkString dumpToString(
bool asHex)
const;
486 static bool AreRectAndRadiiValid(
const SkRect&,
const SkVector[4]);
490 , fRadii{radii[0], radii[1], radii[2], radii[3]}
497 bool initializeRect(
const SkRect&);
506 SkVector fRadii[4] = {{0, 0}, {0, 0}, {0,0}, {0,0}};
508 int32_t fType = kEmpty_Type;
static bool contains(const SkRect &r, SkPoint p)
static bool SkScalarsEqual(const SkScalar a[], const SkScalar b[], int n)
static void dump(const float m[20], SkYUVColorSpace cs, bool rgb2yuv)
SkVector getSimpleRadii() const
void outset(SkScalar dx, SkScalar dy, SkRRect *dst) const
SkRRect & operator=(const SkRRect &rrect)=default
const SkRect & rect() const
SkVector radii(Corner corner) const
@ kOval_Type
non-zero width and height filled with radii
@ kSimple_Type
non-zero width and height with equal radii
@ kEmpty_Type
zero width or height
@ kNinePatch_Type
non-zero width and height with axis-aligned radii
@ kRect_Type
non-zero width and height, and zeroed radii
@ kComplex_Type
non-zero width and height with arbitrary radii
friend bool operator==(const SkRRect &a, const SkRRect &b)
static SkRRect MakeOval(const SkRect &oval)
friend bool operator!=(const SkRRect &a, const SkRRect &b)
SkRRect(const SkRRect &rrect)=default
@ kUpperLeft_Corner
index of top-left corner radii
@ kLowerRight_Corner
index of bottom-right corner radii
@ kUpperRight_Corner
index of top-right corner radii
@ kLowerLeft_Corner
index of bottom-left corner radii
static SkRRect MakeRect(const SkRect &r)
void setOval(const SkRect &oval)
void offset(SkScalar dx, SkScalar dy)
static SkRRect MakeRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
void outset(SkScalar dx, SkScalar dy)
SkRRect makeOffset(SkScalar dx, SkScalar dy) const
void setRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
void inset(SkScalar dx, SkScalar dy)
const SkRect & getBounds() const
void setRect(const SkRect &rect)
static SkRRect MakeEmpty()
static const uint8_t buffer[]
static SkColor4f transform(SkColor4f c, SkColorSpace *src, SkColorSpace *dst)
static SkRect inset(const SkRect &r)
static constexpr SkRect MakeEmpty()
constexpr SkRect makeOffset(float dx, float dy) const
void offset(float dx, float dy)
constexpr float height() const
constexpr float width() const