add SkRect::joinNonEmptyArg for faster unioning
BUG=skia: Review URL: https://codereview.chromium.org/619853005
This commit is contained in:
parent
68cd2aa797
commit
10d0327c16
@ -702,8 +702,19 @@ struct SK_API SkRect {
|
||||
void join(const SkRect& r) {
|
||||
this->join(r.fLeft, r.fTop, r.fRight, r.fBottom);
|
||||
}
|
||||
// alias for join()
|
||||
void growToInclude(const SkRect& r) { this->join(r); }
|
||||
|
||||
void joinNonEmptyArg(const SkRect& r) {
|
||||
SkASSERT(!r.isEmpty());
|
||||
// if we are empty, just assign
|
||||
if (fLeft >= fRight || fTop >= fBottom) {
|
||||
*this = r;
|
||||
} else {
|
||||
fLeft = SkMinScalar(fLeft, r.left());
|
||||
fTop = SkMinScalar(fTop, r.top());
|
||||
fRight = SkMaxScalar(fRight, r.right());
|
||||
fBottom = SkMaxScalar(fBottom, r.bottom());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Grow the rect to include the specified (x,y). After this call, the
|
||||
|
@ -575,7 +575,7 @@ HAS_ATLAS:
|
||||
r.fRight = SkFixedToFloat(vx + width);
|
||||
r.fBottom = SkFixedToFloat(vy + height);
|
||||
|
||||
fVertexBounds.growToInclude(r);
|
||||
fVertexBounds.joinNonEmptyArg(r);
|
||||
|
||||
size_t vertSize = useColorVerts ? (2 * sizeof(SkPoint) + sizeof(GrColor)) :
|
||||
(2 * sizeof(SkPoint));
|
||||
|
@ -411,7 +411,7 @@ HAS_ATLAS:
|
||||
r.fRight = sx + width;
|
||||
r.fBottom = sy + height;
|
||||
|
||||
fVertexBounds.growToInclude(r);
|
||||
fVertexBounds.joinNonEmptyArg(r);
|
||||
|
||||
size_t vertSize = fUseLCDText ? (2 * sizeof(SkPoint))
|
||||
: (2 * sizeof(SkPoint) + sizeof(GrColor));
|
||||
|
Loading…
Reference in New Issue
Block a user