diff options
author | Herb Derby <herb@google.com> | 2018-05-01 17:06:20 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-05-02 14:46:17 +0000 |
commit | efe39bcfb82ddf8404b1df6f58809ff53dff4b99 (patch) | |
tree | 95e76d1546488015f20adbfaf7e71b6c063924f7 /src | |
parent | 83e6a67b694cdaa24b22e65b82d05bacd4b669fa (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.cpp | 25 | ||||
-rw-r--r-- | src/core/SkRemoteGlyphCache.cpp | 2 | ||||
-rw-r--r-- | src/core/SkSpecialSurface.cpp | 2 | ||||
-rw-r--r-- | src/image/SkSurface_Gpu.cpp | 2 | ||||
-rw-r--r-- | src/pdf/SkPDFDevice.cpp | 4 | ||||
-rw-r--r-- | src/pdf/SkPDFDocument.cpp | 2 | ||||
-rw-r--r-- | src/pdf/SkPDFShader.cpp | 2 | ||||
-rw-r--r-- | src/svg/SkSVGCanvas.cpp | 2 | ||||
-rw-r--r-- | src/xps/SkXPSDocument.cpp | 2 |
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(); } |