add roundOut that returns its result
BUG=skia:
Review URL: https://codereview.chromium.org/742663002
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp
index 5204fdb..9df7c9b 100644
--- a/src/core/SkBitmapDevice.cpp
+++ b/src/core/SkBitmapDevice.cpp
@@ -260,8 +260,7 @@
// since we may need to clamp to the borders of the src rect within
// the bitmap, we extract a subset.
- SkIRect srcIR;
- tmpSrc.roundOut(&srcIR);
+ const SkIRect srcIR = tmpSrc.roundOut();
if(bitmap.pixelRef()->getTexture()) {
// Accelerated source canvas, don't use extractSubset but readPixels to get the subset.
// This way, the pixels are copied in CPU memory instead of GPU memory.
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 8d17be7..4fda7a3 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1586,9 +1586,7 @@
if (fMCRec->fMatrix.hasPerspective()) {
SkRect dst;
fMCRec->fMatrix.mapRect(&dst, rect);
- SkIRect idst;
- dst.roundOut(&idst);
- return !SkIRect::Intersects(idst, fMCRec->fRasterClip.getBounds());
+ return !SkIRect::Intersects(dst.roundOut(), fMCRec->fRasterClip.getBounds());
} else {
const SkRect& clipR = this->getLocalClipBounds();
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 95d348e..7ccd258 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -813,8 +813,7 @@
devRect.sort();
// look for the quick exit, before we build a blitter
- SkIRect ir;
- devRect.roundOut(&ir);
+ SkIRect ir = devRect.roundOut();
if (paint.getStyle() != SkPaint::kFill_Style) {
// extra space for hairlines
if (paint.getStrokeWidth() == 0) {
@@ -1210,11 +1209,8 @@
static bool clipped_out(const SkMatrix& m, const SkRasterClip& c,
const SkRect& srcR) {
SkRect dstR;
- SkIRect devIR;
-
m.mapRect(&dstR, srcR);
- dstR.roundOut(&devIR);
- return c.quickReject(devIR);
+ return c.quickReject(dstR.roundOut());
}
static bool clipped_out(const SkMatrix& matrix, const SkRasterClip& clip,
@@ -2282,7 +2278,7 @@
#include "SkBlitter.h"
static bool compute_bounds(const SkPath& devPath, const SkIRect* clipBounds,
- const SkMaskFilter* filter, const SkMatrix* filterMatrix,
+ const SkMaskFilter* filter, const SkMatrix* filterMatrix,
SkIRect* bounds) {
if (devPath.isEmpty()) {
return false;
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 8f49a06..79f04b8 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -290,8 +290,7 @@
srcBounds.offset(srcOffset);
SkRect cropRect;
ctx.ctm().mapRect(&cropRect, fCropRect.rect());
- SkIRect cropRectI;
- cropRect.roundOut(&cropRectI);
+ const SkIRect cropRectI = cropRect.roundOut();
uint32_t flags = fCropRect.flags();
if (flags & CropRect::kHasLeft_CropEdge) srcBounds.fLeft = cropRectI.fLeft;
if (flags & CropRect::kHasTop_CropEdge) srcBounds.fTop = cropRectI.fTop;
@@ -311,8 +310,7 @@
srcBounds.offset(*srcOffset);
SkRect cropRect;
ctx.ctm().mapRect(&cropRect, fCropRect.rect());
- SkIRect cropRectI;
- cropRect.roundOut(&cropRectI);
+ const SkIRect cropRectI = cropRect.roundOut();
uint32_t flags = fCropRect.flags();
*bounds = srcBounds;
if (flags & CropRect::kHasLeft_CropEdge) bounds->fLeft = cropRectI.fLeft;
diff --git a/src/core/SkMaskFilter.cpp b/src/core/SkMaskFilter.cpp
index 86f303c..28c9a38 100644
--- a/src/core/SkMaskFilter.cpp
+++ b/src/core/SkMaskFilter.cpp
@@ -337,7 +337,7 @@
SkMask srcM, dstM;
srcM.fImage = NULL;
- src.roundOut(&srcM.fBounds);
+ srcM.fBounds = src.roundOut();
srcM.fRowBytes = 0;
srcM.fFormat = SkMask::kA8_Format;
diff --git a/src/core/SkRasterClip.cpp b/src/core/SkRasterClip.cpp
index f820c5a..35197c1 100644
--- a/src/core/SkRasterClip.cpp
+++ b/src/core/SkRasterClip.cpp
@@ -76,9 +76,6 @@
/////////////////////////////////////////////////////////////////////////////////////
bool SkRasterClip::setConservativeRect(const SkRect& r, const SkIRect& clipR, bool isInverse) {
- SkIRect ir;
- r.roundOut(&ir);
-
SkRegion::Op op;
if (isInverse) {
op = SkRegion::kDifference_Op;
@@ -86,7 +83,7 @@
op = SkRegion::kIntersect_Op;
}
fBW.setRect(clipR);
- fBW.op(ir, op);
+ fBW.op(r.roundOut(), op);
return this->updateCacheAndReturnNonEmpty();
}
@@ -178,7 +175,7 @@
ir = SkIRect::MakeSize(size);
break;
case kContinue_MutateResult:
- path.getBounds().roundOut(&ir);
+ ir = path.getBounds().roundOut();
break;
}
return this->op(ir, op);
@@ -287,7 +284,7 @@
ir = SkIRect::MakeSize(size);
break;
case kContinue_MutateResult:
- r.roundOut(&ir);
+ ir = r.roundOut();
break;
}
return this->op(ir, op);
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp
index 8cb416e..20413a7 100644
--- a/src/core/SkScalerContext.cpp
+++ b/src/core/SkScalerContext.cpp
@@ -167,8 +167,7 @@
}
} else {
// just use devPath
- SkIRect ir;
- devPath.getBounds().roundOut(&ir);
+ const SkIRect ir = devPath.getBounds().roundOut();
if (ir.isEmpty() || !ir.is16Bit()) {
goto SK_ERROR;
diff --git a/src/core/SkScan_Antihair.cpp b/src/core/SkScan_Antihair.cpp
index 1ad68e5..67c8917 100644
--- a/src/core/SkScan_Antihair.cpp
+++ b/src/core/SkScan_Antihair.cpp
@@ -854,8 +854,7 @@
return;
}
- SkIRect outerBounds;
- newR.roundOut(&outerBounds);
+ const SkIRect outerBounds = newR.roundOut();
if (clip->isRect()) {
antifillrect(newR, blitter);
diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp
index 1e7e762..7ca54ea 100644
--- a/src/core/SkScan_Hairline.cpp
+++ b/src/core/SkScan_Hairline.cpp
@@ -377,14 +377,12 @@
} else {
const SkRegion* clipRgn = NULL;
SkRect r;
- SkIRect ir;
r.set(p0.fX, p0.fY, p1.fX, p1.fY);
r.sort();
r.inset(-SK_ScalarHalf, -SK_ScalarHalf);
- r.roundOut(&ir);
SkAAClipBlitterWrapper wrap;
- if (!clip.quickContains(ir)) {
+ if (!clip.quickContains(r.roundOut())) {
wrap.init(clip, blitter);
blitter = wrap.getBlitter();
clipRgn = &wrap.getRgn();
diff --git a/src/effects/SkBitmapSource.cpp b/src/effects/SkBitmapSource.cpp
index 0d9315b..1d8078d 100644
--- a/src/effects/SkBitmapSource.cpp
+++ b/src/effects/SkBitmapSource.cpp
@@ -67,9 +67,8 @@
offset->fX = offset->fY = 0;
return true;
}
- SkIRect dstIRect;
- dstRect.roundOut(&dstIRect);
+ const SkIRect dstIRect = dstRect.roundOut();
SkAutoTUnref<SkBaseDevice> device(proxy->createDevice(dstIRect.width(), dstIRect.height()));
if (NULL == device.get()) {
return false;
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp
index 1612e3d..4601ebb 100644
--- a/src/effects/SkBlurMaskFilter.cpp
+++ b/src/effects/SkBlurMaskFilter.cpp
@@ -187,7 +187,7 @@
static bool prepare_to_draw_into_mask(const SkRect& bounds, SkMask* mask) {
SkASSERT(mask != NULL);
- bounds.roundOut(&mask->fBounds);
+ mask->fBounds = bounds.roundOut();
mask->fRowBytes = SkAlign4(mask->fBounds.width());
mask->fFormat = SkMask::kA8_Format;
const size_t size = mask->computeImageSize();
@@ -360,7 +360,7 @@
SkIPoint margin;
SkMask srcM, dstM;
- rrect.rect().roundOut(&srcM.fBounds);
+ srcM.fBounds = rrect.rect().roundOut();
srcM.fImage = NULL;
srcM.fFormat = SkMask::kA8_Format;
srcM.fRowBytes = 0;
@@ -476,7 +476,7 @@
SkIPoint margin;
SkMask srcM, dstM;
- rects[0].roundOut(&srcM.fBounds);
+ srcM.fBounds = rects[0].roundOut();
srcM.fImage = NULL;
srcM.fFormat = SkMask::kA8_Format;
srcM.fRowBytes = 0;
diff --git a/src/effects/SkGpuBlurUtils.cpp b/src/effects/SkGpuBlurUtils.cpp
index 975b704..23128e0 100644
--- a/src/effects/SkGpuBlurUtils.cpp
+++ b/src/effects/SkGpuBlurUtils.cpp
@@ -226,8 +226,7 @@
SkTSwap(dstTexture, tempTexture);
}
- SkIRect srcIRect;
- srcRect.roundOut(&srcIRect);
+ const SkIRect srcIRect = srcRect.roundOut();
// For really small blurs(Certainly no wider than 5x5 on desktop gpus) it is faster to just
// launch a single non separable kernel vs two launches
diff --git a/src/effects/SkMatrixImageFilter.cpp b/src/effects/SkMatrixImageFilter.cpp
index 34231ba..8b07dd4 100644
--- a/src/effects/SkMatrixImageFilter.cpp
+++ b/src/effects/SkMatrixImageFilter.cpp
@@ -127,8 +127,7 @@
matrix.postConcat(ctm);
SkRect floatBounds;
matrix.mapRect(&floatBounds, SkRect::Make(src));
- SkIRect bounds;
- floatBounds.roundOut(&bounds);
+ SkIRect bounds = floatBounds.roundOut();
if (getInput(0) && !getInput(0)->filterBounds(bounds, ctm, &bounds)) {
return false;
}
diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/SkPictureImageFilter.cpp
index 30fbac1..0c95b32 100644
--- a/src/effects/SkPictureImageFilter.cpp
+++ b/src/effects/SkPictureImageFilter.cpp
@@ -81,9 +81,8 @@
}
SkRect floatBounds;
- SkIRect bounds;
ctx.ctm().mapRect(&floatBounds, fCropRect);
- floatBounds.roundOut(&bounds);
+ SkIRect bounds = floatBounds.roundOut();
if (!bounds.intersect(ctx.clipBounds())) {
return false;
}
diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp
index bebf8f0..04c62d0 100644
--- a/src/effects/SkTileImageFilter.cpp
+++ b/src/effects/SkTileImageFilter.cpp
@@ -36,8 +36,7 @@
SkRect dstRect;
ctx.ctm().mapRect(&dstRect, fDstRect);
- SkIRect dstIRect;
- dstRect.roundOut(&dstIRect);
+ const SkIRect dstIRect = dstRect.roundOut();
int w = dstIRect.width();
int h = dstIRect.height();
if (!fSrcRect.width() || !fSrcRect.height() || !w || !h) {
diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp
index b07b383..95256e7 100644
--- a/src/utils/debugger/SkDebugCanvas.cpp
+++ b/src/utils/debugger/SkDebugCanvas.cpp
@@ -42,8 +42,7 @@
largeIRect.inset(1024, 1024);
SkRect large = SkRect::Make(largeIRect);
#ifdef SK_DEBUG
- large.roundOut(&largeIRect);
- SkASSERT(!largeIRect.isEmpty());
+ SkASSERT(!large.roundOut().isEmpty());
#endif
// call the base class' version to avoid adding a draw command
this->INHERITED::onClipRect(large, SkRegion::kReplace_Op, kHard_ClipEdgeStyle);