Make simple coord/size getters on Sk[I]Rect constexpr
Bug: skia:12720 Change-Id: I349a3dd8ae58eefcadbace7847798fbe57227a41 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/482008 Auto-Submit: Brian Salomon <bsalomon@google.com> Reviewed-by: John Stiles <johnstiles@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
This commit is contained in:
parent
a964a72174
commit
eb6851ab51
@ -108,66 +108,66 @@ struct SK_API SkIRect {
|
|||||||
|
|
||||||
@return fLeft
|
@return fLeft
|
||||||
*/
|
*/
|
||||||
int32_t left() const { return fLeft; }
|
constexpr int32_t left() const { return fLeft; }
|
||||||
|
|
||||||
/** Returns top edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
/** Returns top edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
||||||
and sort() to reverse fTop and fBottom if needed.
|
and sort() to reverse fTop and fBottom if needed.
|
||||||
|
|
||||||
@return fTop
|
@return fTop
|
||||||
*/
|
*/
|
||||||
int32_t top() const { return fTop; }
|
constexpr int32_t top() const { return fTop; }
|
||||||
|
|
||||||
/** Returns right edge of SkIRect, if sorted.
|
/** Returns right edge of SkIRect, if sorted.
|
||||||
Call sort() to reverse fLeft and fRight if needed.
|
Call sort() to reverse fLeft and fRight if needed.
|
||||||
|
|
||||||
@return fRight
|
@return fRight
|
||||||
*/
|
*/
|
||||||
int32_t right() const { return fRight; }
|
constexpr int32_t right() const { return fRight; }
|
||||||
|
|
||||||
/** Returns bottom edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
/** Returns bottom edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
||||||
and sort() to reverse fTop and fBottom if needed.
|
and sort() to reverse fTop and fBottom if needed.
|
||||||
|
|
||||||
@return fBottom
|
@return fBottom
|
||||||
*/
|
*/
|
||||||
int32_t bottom() const { return fBottom; }
|
constexpr int32_t bottom() const { return fBottom; }
|
||||||
|
|
||||||
/** Returns left edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
/** Returns left edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
||||||
and sort() to reverse fLeft and fRight if needed.
|
and sort() to reverse fLeft and fRight if needed.
|
||||||
|
|
||||||
@return fLeft
|
@return fLeft
|
||||||
*/
|
*/
|
||||||
int32_t x() const { return fLeft; }
|
constexpr int32_t x() const { return fLeft; }
|
||||||
|
|
||||||
/** Returns top edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
/** Returns top edge of SkIRect, if sorted. Call isEmpty() to see if SkIRect may be invalid,
|
||||||
and sort() to reverse fTop and fBottom if needed.
|
and sort() to reverse fTop and fBottom if needed.
|
||||||
|
|
||||||
@return fTop
|
@return fTop
|
||||||
*/
|
*/
|
||||||
int32_t y() const { return fTop; }
|
constexpr int32_t y() const { return fTop; }
|
||||||
|
|
||||||
// Experimental
|
// Experimental
|
||||||
SkIPoint topLeft() const { return {fLeft, fTop}; }
|
constexpr SkIPoint topLeft() const { return {fLeft, fTop}; }
|
||||||
|
|
||||||
/** Returns span on the x-axis. This does not check if SkIRect is sorted, or if
|
/** Returns span on the x-axis. This does not check if SkIRect is sorted, or if
|
||||||
result fits in 32-bit signed integer; result may be negative.
|
result fits in 32-bit signed integer; result may be negative.
|
||||||
|
|
||||||
@return fRight minus fLeft
|
@return fRight minus fLeft
|
||||||
*/
|
*/
|
||||||
int32_t width() const { return Sk32_can_overflow_sub(fRight, fLeft); }
|
constexpr int32_t width() const { return Sk32_can_overflow_sub(fRight, fLeft); }
|
||||||
|
|
||||||
/** Returns span on the y-axis. This does not check if SkIRect is sorted, or if
|
/** Returns span on the y-axis. This does not check if SkIRect is sorted, or if
|
||||||
result fits in 32-bit signed integer; result may be negative.
|
result fits in 32-bit signed integer; result may be negative.
|
||||||
|
|
||||||
@return fBottom minus fTop
|
@return fBottom minus fTop
|
||||||
*/
|
*/
|
||||||
int32_t height() const { return Sk32_can_overflow_sub(fBottom, fTop); }
|
constexpr int32_t height() const { return Sk32_can_overflow_sub(fBottom, fTop); }
|
||||||
|
|
||||||
/** Returns spans on the x-axis and y-axis. This does not check if SkIRect is sorted,
|
/** Returns spans on the x-axis and y-axis. This does not check if SkIRect is sorted,
|
||||||
or if result fits in 32-bit signed integer; result may be negative.
|
or if result fits in 32-bit signed integer; result may be negative.
|
||||||
|
|
||||||
@return SkISize (width, height)
|
@return SkISize (width, height)
|
||||||
*/
|
*/
|
||||||
SkISize size() const { return SkISize::Make(this->width(), this->height()); }
|
constexpr SkISize size() const { return SkISize::Make(this->width(), this->height()); }
|
||||||
|
|
||||||
/** Returns span on the x-axis. This does not check if SkIRect is sorted, so the
|
/** Returns span on the x-axis. This does not check if SkIRect is sorted, so the
|
||||||
result may be negative. This is safer than calling width() since width() might
|
result may be negative. This is safer than calling width() since width() might
|
||||||
@ -175,7 +175,7 @@ struct SK_API SkIRect {
|
|||||||
|
|
||||||
@return fRight minus fLeft cast to int64_t
|
@return fRight minus fLeft cast to int64_t
|
||||||
*/
|
*/
|
||||||
int64_t width64() const { return (int64_t)fRight - (int64_t)fLeft; }
|
constexpr int64_t width64() const { return (int64_t)fRight - (int64_t)fLeft; }
|
||||||
|
|
||||||
/** Returns span on the y-axis. This does not check if SkIRect is sorted, so the
|
/** Returns span on the y-axis. This does not check if SkIRect is sorted, so the
|
||||||
result may be negative. This is safer than calling height() since height() might
|
result may be negative. This is safer than calling height() since height() might
|
||||||
@ -183,7 +183,7 @@ struct SK_API SkIRect {
|
|||||||
|
|
||||||
@return fBottom minus fTop cast to int64_t
|
@return fBottom minus fTop cast to int64_t
|
||||||
*/
|
*/
|
||||||
int64_t height64() const { return (int64_t)fBottom - (int64_t)fTop; }
|
constexpr int64_t height64() const { return (int64_t)fBottom - (int64_t)fTop; }
|
||||||
|
|
||||||
/** Returns true if fLeft is equal to or greater than fRight, or if fTop is equal
|
/** Returns true if fLeft is equal to or greater than fRight, or if fTop is equal
|
||||||
to or greater than fBottom. Call sort() to reverse rectangles with negative
|
to or greater than fBottom. Call sort() to reverse rectangles with negative
|
||||||
@ -727,56 +727,56 @@ struct SK_API SkRect {
|
|||||||
|
|
||||||
@return fLeft
|
@return fLeft
|
||||||
*/
|
*/
|
||||||
SkScalar x() const { return fLeft; }
|
constexpr SkScalar x() const { return fLeft; }
|
||||||
|
|
||||||
/** Returns top edge of SkRect, if sorted. Call isEmpty() to see if SkRect may be invalid,
|
/** Returns top edge of SkRect, if sorted. Call isEmpty() to see if SkRect may be invalid,
|
||||||
and sort() to reverse fTop and fBottom if needed.
|
and sort() to reverse fTop and fBottom if needed.
|
||||||
|
|
||||||
@return fTop
|
@return fTop
|
||||||
*/
|
*/
|
||||||
SkScalar y() const { return fTop; }
|
constexpr SkScalar y() const { return fTop; }
|
||||||
|
|
||||||
/** Returns left edge of SkRect, if sorted. Call isSorted() to see if SkRect is valid.
|
/** Returns left edge of SkRect, if sorted. Call isSorted() to see if SkRect is valid.
|
||||||
Call sort() to reverse fLeft and fRight if needed.
|
Call sort() to reverse fLeft and fRight if needed.
|
||||||
|
|
||||||
@return fLeft
|
@return fLeft
|
||||||
*/
|
*/
|
||||||
SkScalar left() const { return fLeft; }
|
constexpr SkScalar left() const { return fLeft; }
|
||||||
|
|
||||||
/** Returns top edge of SkRect, if sorted. Call isEmpty() to see if SkRect may be invalid,
|
/** Returns top edge of SkRect, if sorted. Call isEmpty() to see if SkRect may be invalid,
|
||||||
and sort() to reverse fTop and fBottom if needed.
|
and sort() to reverse fTop and fBottom if needed.
|
||||||
|
|
||||||
@return fTop
|
@return fTop
|
||||||
*/
|
*/
|
||||||
SkScalar top() const { return fTop; }
|
constexpr SkScalar top() const { return fTop; }
|
||||||
|
|
||||||
/** Returns right edge of SkRect, if sorted. Call isSorted() to see if SkRect is valid.
|
/** Returns right edge of SkRect, if sorted. Call isSorted() to see if SkRect is valid.
|
||||||
Call sort() to reverse fLeft and fRight if needed.
|
Call sort() to reverse fLeft and fRight if needed.
|
||||||
|
|
||||||
@return fRight
|
@return fRight
|
||||||
*/
|
*/
|
||||||
SkScalar right() const { return fRight; }
|
constexpr SkScalar right() const { return fRight; }
|
||||||
|
|
||||||
/** Returns bottom edge of SkRect, if sorted. Call isEmpty() to see if SkRect may be invalid,
|
/** Returns bottom edge of SkRect, if sorted. Call isEmpty() to see if SkRect may be invalid,
|
||||||
and sort() to reverse fTop and fBottom if needed.
|
and sort() to reverse fTop and fBottom if needed.
|
||||||
|
|
||||||
@return fBottom
|
@return fBottom
|
||||||
*/
|
*/
|
||||||
SkScalar bottom() const { return fBottom; }
|
constexpr SkScalar bottom() const { return fBottom; }
|
||||||
|
|
||||||
/** Returns span on the x-axis. This does not check if SkRect is sorted, or if
|
/** Returns span on the x-axis. This does not check if SkRect is sorted, or if
|
||||||
result fits in 32-bit float; result may be negative or infinity.
|
result fits in 32-bit float; result may be negative or infinity.
|
||||||
|
|
||||||
@return fRight minus fLeft
|
@return fRight minus fLeft
|
||||||
*/
|
*/
|
||||||
SkScalar width() const { return fRight - fLeft; }
|
constexpr SkScalar width() const { return fRight - fLeft; }
|
||||||
|
|
||||||
/** Returns span on the y-axis. This does not check if SkRect is sorted, or if
|
/** Returns span on the y-axis. This does not check if SkRect is sorted, or if
|
||||||
result fits in 32-bit float; result may be negative or infinity.
|
result fits in 32-bit float; result may be negative or infinity.
|
||||||
|
|
||||||
@return fBottom minus fTop
|
@return fBottom minus fTop
|
||||||
*/
|
*/
|
||||||
SkScalar height() const { return fBottom - fTop; }
|
constexpr SkScalar height() const { return fBottom - fTop; }
|
||||||
|
|
||||||
/** Returns average of left edge and right edge. Result does not change if SkRect
|
/** Returns average of left edge and right edge. Result does not change if SkRect
|
||||||
is sorted. Result may overflow to infinity if SkRect is far from the origin.
|
is sorted. Result may overflow to infinity if SkRect is far from the origin.
|
||||||
|
Loading…
Reference in New Issue
Block a user