aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Herb Derby <herb@google.com>2018-05-01 17:06:20 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-02 14:46:17 +0000
commitefe39bcfb82ddf8404b1df6f58809ff53dff4b99 (patch)
tree95e76d1546488015f20adbfaf7e71b6c063924f7 /src
parent83e6a67b694cdaa24b22e65b82d05bacd4b669fa (diff)
Take sk_sp<SkDevice> instead of SkDevice*
Change-Id: I0b296bf5b80adc19758a3dc99160be9d2ed05680 Reviewed-on: https://skia-review.googlesource.com/125160 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com> Auto-Submit: Herb Derby <herb@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkCanvas.cpp25
-rw-r--r--src/core/SkRemoteGlyphCache.cpp2
-rw-r--r--src/core/SkSpecialSurface.cpp2
-rw-r--r--src/image/SkSurface_Gpu.cpp2
-rw-r--r--src/pdf/SkPDFDevice.cpp4
-rw-r--r--src/pdf/SkPDFDocument.cpp2
-rw-r--r--src/pdf/SkPDFShader.cpp2
-rw-r--r--src/svg/SkSVGCanvas.cpp2
-rw-r--r--src/xps/SkXPSDocument.cpp2
9 files changed, 20 insertions, 23 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 0a718f2063..82237cf823 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -557,7 +557,7 @@ void SkCanvas::resetForNextPicture(const SkIRect& bounds) {
fIsScaleTranslate = true;
}
-SkBaseDevice* SkCanvas::init(SkBaseDevice* device, InitFlags flags) {
+void SkCanvas::init(sk_sp<SkBaseDevice> device, InitFlags flags) {
if (device && device->forceConservativeRasterClip()) {
flags = InitFlags(flags | kConservativeRasterClip_InitFlag);
}
@@ -573,7 +573,7 @@ SkBaseDevice* SkCanvas::init(SkBaseDevice* device, InitFlags flags) {
SkASSERT(sizeof(DeviceCM) <= sizeof(fDeviceCMStorage));
fMCRec->fLayer = (DeviceCM*)fDeviceCMStorage;
- new (fDeviceCMStorage) DeviceCM(sk_ref_sp(device), nullptr, fMCRec->fMatrix, nullptr, nullptr);
+ new (fDeviceCMStorage) DeviceCM(device, nullptr, fMCRec->fMatrix, nullptr, nullptr);
fMCRec->fTopLayer = fMCRec->fLayer;
@@ -587,8 +587,6 @@ SkBaseDevice* SkCanvas::init(SkBaseDevice* device, InitFlags flags) {
device->androidFramework_setDeviceClipRestriction(&fClipRestrictionRect);
}
-
- return device;
}
SkCanvas::SkCanvas()
@@ -605,9 +603,8 @@ SkCanvas::SkCanvas(int width, int height, const SkSurfaceProps* props)
, fProps(SkSurfacePropsCopyOrDefault(props))
{
inc_canvas();
-
- this->init(new SkNoPixelsDevice(SkIRect::MakeWH(SkTMax(width, 0), SkTMax(height, 0)), fProps),
- kDefault_InitFlags)->unref();
+ this->init(sk_make_sp<SkNoPixelsDevice>(
+ SkIRect::MakeWH(SkTMax(width, 0), SkTMax(height, 0)), fProps), kDefault_InitFlags);
}
SkCanvas::SkCanvas(const SkIRect& bounds, InitFlags flags)
@@ -617,10 +614,10 @@ SkCanvas::SkCanvas(const SkIRect& bounds, InitFlags flags)
inc_canvas();
SkIRect r = bounds.isEmpty() ? SkIRect::MakeEmpty() : bounds;
- this->init(new SkNoPixelsDevice(r, fProps), flags)->unref();
+ this->init(sk_make_sp<SkNoPixelsDevice>(r, fProps), flags);
}
-SkCanvas::SkCanvas(SkBaseDevice* device)
+SkCanvas::SkCanvas(sk_sp<SkBaseDevice> device)
: fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage))
, fProps(device->surfaceProps())
{
@@ -629,7 +626,7 @@ SkCanvas::SkCanvas(SkBaseDevice* device)
this->init(device, kDefault_InitFlags);
}
-SkCanvas::SkCanvas(SkBaseDevice* device, InitFlags flags)
+SkCanvas::SkCanvas(sk_sp<SkBaseDevice> device, InitFlags flags)
: fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage))
, fProps(device->surfaceProps())
{
@@ -645,7 +642,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)
inc_canvas();
sk_sp<SkBaseDevice> device(new SkBitmapDevice(bitmap, fProps, nullptr, nullptr));
- this->init(device.get(), kDefault_InitFlags);
+ this->init(device, kDefault_InitFlags);
}
SkCanvas::SkCanvas(const SkBitmap& bitmap, std::unique_ptr<SkRasterHandleAllocator> alloc,
@@ -657,7 +654,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap, std::unique_ptr<SkRasterHandleAllocat
inc_canvas();
sk_sp<SkBaseDevice> device(new SkBitmapDevice(bitmap, fProps, hndl, nullptr));
- this->init(device.get(), kDefault_InitFlags);
+ this->init(device, kDefault_InitFlags);
}
SkCanvas::SkCanvas(const SkBitmap& bitmap) : SkCanvas(bitmap, nullptr, nullptr) {}
@@ -673,7 +670,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap, ColorBehavior)
SkBitmap tmp(bitmap);
*const_cast<SkImageInfo*>(&tmp.info()) = tmp.info().makeColorSpace(nullptr);
sk_sp<SkBaseDevice> device(new SkBitmapDevice(tmp, fProps, nullptr, nullptr));
- this->init(device.get(), kDefault_InitFlags);
+ this->init(device, kDefault_InitFlags);
}
#endif
@@ -2869,7 +2866,7 @@ SkNoDrawCanvas::SkNoDrawCanvas(int width, int height)
SkNoDrawCanvas::SkNoDrawCanvas(const SkIRect& bounds)
: INHERITED(bounds, kConservativeRasterClip_InitFlag) {}
-SkNoDrawCanvas::SkNoDrawCanvas(SkBaseDevice *device)
+SkNoDrawCanvas::SkNoDrawCanvas(sk_sp<SkBaseDevice> device)
: INHERITED(device) {}
SkCanvas::SaveLayerStrategy SkNoDrawCanvas::getSaveLayerStrategy(const SaveLayerRec& rec) {
diff --git a/src/core/SkRemoteGlyphCache.cpp b/src/core/SkRemoteGlyphCache.cpp
index ed484dd6fd..63c3fe9eb9 100644
--- a/src/core/SkRemoteGlyphCache.cpp
+++ b/src/core/SkRemoteGlyphCache.cpp
@@ -188,7 +188,7 @@ SkTextBlobCacheDiffCanvas::SkTextBlobCacheDiffCanvas(
const SkSurfaceProps& props,
SkScalerContextFlags flags,
SkStrikeCacheDifferenceSpec* strikeDiffs)
- : SkNoDrawCanvas{new TrackLayerDevice{SkIRect::MakeWH(width, height), props}}
+ : SkNoDrawCanvas{sk_make_sp<TrackLayerDevice>(SkIRect::MakeWH(width, height), props)}
, fDeviceMatrix{deviceMatrix}
, fSurfaceProps{props}
, fScalerContextFlags{flags}
diff --git a/src/core/SkSpecialSurface.cpp b/src/core/SkSpecialSurface.cpp
index 19a149fe45..f7cddcdf91 100644
--- a/src/core/SkSpecialSurface.cpp
+++ b/src/core/SkSpecialSurface.cpp
@@ -133,7 +133,7 @@ public:
return;
}
- fCanvas.reset(new SkCanvas(device.get()));
+ fCanvas.reset(new SkCanvas(device));
fCanvas->clipRect(SkRect::Make(subset));
#ifdef SK_IS_BOT
fCanvas->clear(SK_ColorRED); // catch any imageFilter sloppiness
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp
index 21ed1f90eb..b47cfbcf7a 100644
--- a/src/image/SkSurface_Gpu.cpp
+++ b/src/image/SkSurface_Gpu.cpp
@@ -100,7 +100,7 @@ SkCanvas* SkSurface_Gpu::onNewCanvas() {
SkCanvas::InitFlags flags = SkCanvas::kDefault_InitFlags;
flags = static_cast<SkCanvas::InitFlags>(flags | SkCanvas::kConservativeRasterClip_InitFlag);
- return new SkCanvas(fDevice.get(), flags);
+ return new SkCanvas(fDevice, flags);
}
sk_sp<SkSurface> SkSurface_Gpu::onNewSurface(const SkImageInfo& info) {
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index ff14c41fae..6e36fb3d82 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -819,7 +819,7 @@ void SkPDFDevice::internalDrawPathWithFilter(const SkClipStack& clipStack,
// Must mask with a Form XObject.
sk_sp<SkPDFDevice> maskDevice = this->makeCongruentDevice();
{
- SkCanvas canvas(maskDevice.get());
+ SkCanvas canvas(maskDevice);
canvas.drawImage(mask, dstMaskBounds.x(), dstMaskBounds.y());
}
if (!ctm.isIdentity() && paint->getShader()) {
@@ -2098,7 +2098,7 @@ void SkPDFDevice::internalDrawImageRect(SkKeyedImage imageSubset,
// Must mask with a Form XObject.
sk_sp<SkPDFDevice> maskDevice = this->makeCongruentDevice();
{
- SkCanvas canvas(maskDevice.get());
+ SkCanvas canvas(maskDevice);
if (paint.getMaskFilter()) {
// This clip prevents the mask image shader from covering
// entire device if unnecessary.
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp
index 16f0c11a40..b06b8b1a96 100644
--- a/src/pdf/SkPDFDocument.cpp
+++ b/src/pdf/SkPDFDocument.cpp
@@ -211,7 +211,7 @@ SkCanvas* SkPDFDocument::onBeginPage(SkScalar width, SkScalar height) {
SkScalarRoundToInt(width), SkScalarRoundToInt(height));
fPageDevice = sk_make_sp<SkPDFDevice>(pageSize, this);
fPageDevice->setFlip(); // Only the top-level device needs to be flipped.
- fCanvas.reset(new SkCanvas(fPageDevice.get()));
+ fCanvas.reset(new SkCanvas(fPageDevice));
return fCanvas.get();
}
diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp
index 73a6e6b350..63611d43d5 100644
--- a/src/pdf/SkPDFShader.cpp
+++ b/src/pdf/SkPDFShader.cpp
@@ -72,7 +72,7 @@ static sk_sp<SkPDFStream> make_image_shader(SkPDFDocument* doc,
SkISize patternDeviceSize = {SkScalarCeilToInt(deviceBounds.width()),
SkScalarCeilToInt(deviceBounds.height())};
auto patternDevice = sk_make_sp<SkPDFDevice>(patternDeviceSize, doc);
- SkCanvas canvas(patternDevice.get());
+ SkCanvas canvas(patternDevice);
SkRect patternBBox = SkRect::Make(image->bounds());
diff --git a/src/svg/SkSVGCanvas.cpp b/src/svg/SkSVGCanvas.cpp
index a95bdf0687..3d1ff0e74a 100644
--- a/src/svg/SkSVGCanvas.cpp
+++ b/src/svg/SkSVGCanvas.cpp
@@ -15,7 +15,7 @@ std::unique_ptr<SkCanvas> SkSVGCanvas::Make(const SkRect& bounds, SkXMLWriter* w
SkISize size = bounds.roundOut().size();
sk_sp<SkBaseDevice> device(SkSVGDevice::Create(size, writer));
- return skstd::make_unique<SkCanvas>(device.get());
+ return skstd::make_unique<SkCanvas>(device);
}
std::unique_ptr<SkCanvas> SkSVGCanvas::Make(const SkRect& bounds, SkWStream* writer) {
diff --git a/src/xps/SkXPSDocument.cpp b/src/xps/SkXPSDocument.cpp
index 2665e90b63..60809068f9 100644
--- a/src/xps/SkXPSDocument.cpp
+++ b/src/xps/SkXPSDocument.cpp
@@ -35,7 +35,7 @@ SkXPSDocument::~SkXPSDocument() {
SkCanvas* SkXPSDocument::onBeginPage(SkScalar width, SkScalar height) {
fDevice.beginSheet(fUnitsPerMeter, fPixelsPerMeter, {width, height});
- fCanvas.reset(new SkCanvas(&fDevice));
+ fCanvas.reset(new SkCanvas(sk_ref_sp(&fDevice)));
return fCanvas.get();
}