diff options
author | Mike Reed <reed@google.com> | 2017-01-12 10:13:40 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-12 16:38:34 +0000 |
commit | 693fdbd6b81a860657612e7604430dd55d6e721b (patch) | |
tree | 6032cec90b209da8349a684e899b72b94edef49c | |
parent | a005acc036f8772cb6537b71d366825653888636 (diff) |
refFoo variant for getters that naturally have a sk_sp
BUG=skia:
Change-Id: I13afa1b81e8a72d93e45fb4d37228be196b0f388
Reviewed-on: https://skia-review.googlesource.com/6923
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Mike Reed <reed@google.com>
-rw-r--r-- | bench/ColorCodecBench.cpp | 2 | ||||
-rw-r--r-- | gm/coloremoji.cpp | 2 | ||||
-rw-r--r-- | gm/dftext.cpp | 2 | ||||
-rw-r--r-- | gm/imagealphathreshold.cpp | 2 | ||||
-rw-r--r-- | gm/pictureimagegenerator.cpp | 3 | ||||
-rw-r--r-- | gm/recordopts.cpp | 7 | ||||
-rw-r--r-- | gm/textblobmixedsizes.cpp | 2 | ||||
-rw-r--r-- | gm/textblobrandomfont.cpp | 2 | ||||
-rw-r--r-- | gm/xfermodes3.cpp | 2 | ||||
-rw-r--r-- | include/core/SkImageInfo.h | 1 | ||||
-rw-r--r-- | include/core/SkPaint.h | 9 | ||||
-rw-r--r-- | src/animator/SkDrawPaint.cpp | 4 | ||||
-rw-r--r-- | src/core/SkCanvas.cpp | 4 | ||||
-rw-r--r-- | src/core/SkDraw.cpp | 2 | ||||
-rw-r--r-- | src/core/SkPaint.cpp | 17 | ||||
-rw-r--r-- | src/effects/SkLayerDrawLooper.cpp | 8 | ||||
-rw-r--r-- | src/gpu/text/GrTextUtils.cpp | 2 | ||||
-rw-r--r-- | src/svg/SkSVGDevice.cpp | 3 | ||||
-rw-r--r-- | tests/FontHostStreamTest.cpp | 4 |
19 files changed, 47 insertions, 31 deletions
diff --git a/bench/ColorCodecBench.cpp b/bench/ColorCodecBench.cpp index 50727c7047..06afdc6565 100644 --- a/bench/ColorCodecBench.cpp +++ b/bench/ColorCodecBench.cpp @@ -95,7 +95,7 @@ void ColorCodecBench::onDelayedSetup() { if (FLAGS_xform_only) { fSrc.reset(fSrcInfo.getSafeSize(fSrcInfo.minRowBytes())); - fSrcSpace = sk_ref_sp(codec->getInfo().colorSpace()); + fSrcSpace = codec->getInfo().refColorSpace(); codec->getPixels(fSrcInfo, fSrc.get(), fSrcInfo.minRowBytes()); } } diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp index 371768c95b..c1ebef667f 100644 --- a/gm/coloremoji.cpp +++ b/gm/coloremoji.cpp @@ -95,7 +95,7 @@ protected: for (int makeBlur = 0; makeBlur < 2; makeBlur++) { for (int makeGray = 0; makeGray < 2; makeGray++) { SkPaint shaderPaint; - shaderPaint.setTypeface(sk_ref_sp(paint.getTypeface())); + shaderPaint.setTypeface(paint.refTypeface()); if (SkToBool(makeLinear)) { shaderPaint.setShader(MakeLinear()); } diff --git a/gm/dftext.cpp b/gm/dftext.cpp index f1b972892e..6f3be21c92 100644 --- a/gm/dftext.cpp +++ b/gm/dftext.cpp @@ -42,7 +42,7 @@ protected: GrContext* ctx = inputCanvas->getGrContext(); SkISize size = onISize(); SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, - sk_ref_sp(inputCanvas->imageInfo().colorSpace())); + inputCanvas->imageInfo().refColorSpace()); SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag, SkSurfaceProps::kLegacyFontHost_InitType); auto surface(SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info, 0, &props)); diff --git a/gm/imagealphathreshold.cpp b/gm/imagealphathreshold.cpp index 193423d326..547e812e11 100644 --- a/gm/imagealphathreshold.cpp +++ b/gm/imagealphathreshold.cpp @@ -88,7 +88,7 @@ static sk_sp<SkSurface> make_color_matching_surface(SkCanvas* canvas, int width, SkAlphaType alphaType) { SkColorType ct = canvas->imageInfo().colorType(); - sk_sp<SkColorSpace> cs(sk_ref_sp(canvas->imageInfo().colorSpace())); + sk_sp<SkColorSpace> cs(canvas->imageInfo().refColorSpace()); if (kUnknown_SkColorType == ct) { // For backends that aren't yet color-space aware we just fallback to N32. diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp index accf072c77..3c59f108d8 100644 --- a/gm/pictureimagegenerator.cpp +++ b/gm/pictureimagegenerator.cpp @@ -158,8 +158,7 @@ protected: p.getAlpha() != 255 ? &p : nullptr, SkImage::BitDepth::kU8, srgbColorSpace)); - SkImageInfo bmInfo = gen->getInfo().makeColorSpace( - sk_ref_sp(canvas->imageInfo().colorSpace())); + SkImageInfo bmInfo = gen->getInfo().makeColorSpace(canvas->imageInfo().refColorSpace()); SkBitmap bm; SkAssertResult(gen->tryGenerateBitmap(&bm, bmInfo, nullptr)); diff --git a/gm/recordopts.cpp b/gm/recordopts.cpp index b98d2cc14b..341b7ce924 100644 --- a/gm/recordopts.cpp +++ b/gm/recordopts.cpp @@ -39,11 +39,8 @@ static void install_detector_color_filter(SkPaint* drawPaint) { // This detector detects that image filter phase of the pixel pipeline receives the correct value. static void install_detector_image_filter(SkPaint* drawPaint) { - sk_sp<SkColorFilter> colorFilter(make_detector_color_filter()); - sk_sp<SkImageFilter> imageFilter( - SkColorFilterImageFilter::Make(std::move(colorFilter), - sk_ref_sp(drawPaint->getImageFilter()))); - drawPaint->setImageFilter(std::move(imageFilter)); + drawPaint->setImageFilter(SkColorFilterImageFilter::Make(make_detector_color_filter(), + drawPaint->refImageFilter())); } static void no_detector_install(SkPaint*) { diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp index 8c51cae45e..64cf723c8d 100644 --- a/gm/textblobmixedsizes.cpp +++ b/gm/textblobmixedsizes.cpp @@ -103,7 +103,7 @@ protected: // Create a new Canvas to enable DFT GrContext* ctx = inputCanvas->getGrContext(); SkISize size = onISize(); - sk_sp<SkColorSpace> colorSpace = sk_ref_sp(inputCanvas->imageInfo().colorSpace()); + sk_sp<SkColorSpace> colorSpace = inputCanvas->imageInfo().refColorSpace(); SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, colorSpace); SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag, diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp index 64e2c67233..918549477b 100644 --- a/gm/textblobrandomfont.cpp +++ b/gm/textblobrandomfont.cpp @@ -99,7 +99,7 @@ protected: SkImageInfo info = SkImageInfo::Make(kWidth, kHeight, canvas->imageInfo().colorType(), kPremul_SkAlphaType, - sk_ref_sp(canvas->imageInfo().colorSpace())); + canvas->imageInfo().refColorSpace()); SkSurfaceProps props(0, kUnknown_SkPixelGeometry); auto surface(canvas->makeSurface(info, &props)); if (surface) { diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp index e6ee7508ad..c2d4d935e5 100644 --- a/gm/xfermodes3.cpp +++ b/gm/xfermodes3.cpp @@ -126,7 +126,7 @@ private: GrContext* context = baseCanvas->getGrContext(); SkImageInfo baseInfo = baseCanvas->imageInfo(); SkImageInfo info = SkImageInfo::Make(w, h, baseInfo.colorType(), baseInfo.alphaType(), - sk_ref_sp(baseInfo.colorSpace())); + baseInfo.refColorSpace()); SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType); baseCanvas->getProps(&canvasProps); return SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info, 0, &canvasProps); diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h index f8582d65c7..4a8c2860fc 100644 --- a/include/core/SkImageInfo.h +++ b/include/core/SkImageInfo.h @@ -234,6 +234,7 @@ public: SkColorType colorType() const { return fColorType; } SkAlphaType alphaType() const { return fAlphaType; } SkColorSpace* colorSpace() const { return fColorSpace.get(); } + sk_sp<SkColorSpace> refColorSpace() const { return fColorSpace; } bool isEmpty() const { return fWidth <= 0 || fHeight <= 0; } diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h index de3b4792fd..f19edf7c1e 100644 --- a/include/core/SkPaint.h +++ b/include/core/SkPaint.h @@ -481,6 +481,7 @@ public: @return the paint's shader (or NULL) */ SkShader* getShader() const { return fShader.get(); } + sk_sp<SkShader> refShader() const; /** Set or clear the shader object. * Shaders specify the source color(s) for what is being drawn. If a paint @@ -509,6 +510,7 @@ public: @return the paint's colorfilter (or NULL) */ SkColorFilter* getColorFilter() const { return fColorFilter.get(); } + sk_sp<SkColorFilter> refColorFilter() const; /** Set or clear the paint's colorfilter. <p /> @@ -528,6 +530,7 @@ public: @return the paint's patheffect (or NULL) */ SkPathEffect* getPathEffect() const { return fPathEffect.get(); } + sk_sp<SkPathEffect> refPathEffect() const; /** Set or clear the patheffect object. <p /> @@ -547,6 +550,7 @@ public: @return the paint's maskfilter (or NULL) */ SkMaskFilter* getMaskFilter() const { return fMaskFilter.get(); } + sk_sp<SkMaskFilter> refMaskFilter() const; /** Set or clear the maskfilter object. <p /> @@ -569,6 +573,7 @@ public: @return the paint's typeface (or NULL) */ SkTypeface* getTypeface() const { return fTypeface.get(); } + sk_sp<SkTypeface> refTypeface() const; /** Set or clear the typeface object. <p /> @@ -588,6 +593,7 @@ public: @return the paint's rasterizer (or NULL) */ SkRasterizer* getRasterizer() const { return fRasterizer.get(); } + sk_sp<SkRasterizer> refRasterizer() const; /** Set or clear the rasterizer object. <p /> @@ -603,6 +609,7 @@ public: void setRasterizer(sk_sp<SkRasterizer>); SkImageFilter* getImageFilter() const { return fImageFilter.get(); } + sk_sp<SkImageFilter> refImageFilter() const; void setImageFilter(sk_sp<SkImageFilter>); /** @@ -610,6 +617,8 @@ public: * reference count. */ SkDrawLooper* getDrawLooper() const { return fDrawLooper.get(); } + sk_sp<SkDrawLooper> refDrawLooper() const; + SkDrawLooper* getLooper() const { return fDrawLooper.get(); } /** * Set or clear the looper object. diff --git a/src/animator/SkDrawPaint.cpp b/src/animator/SkDrawPaint.cpp index 1026630eb1..bbd02221ed 100644 --- a/src/animator/SkDrawPaint.cpp +++ b/src/animator/SkDrawPaint.cpp @@ -233,11 +233,11 @@ void SkDrawPaint::setupPaint(SkPaint* paint) const { if (pathEffect == nullptr) paint->setPathEffect(nullptr); else if (pathEffect != (SkDrawPathEffect*) -1) - paint->setPathEffect(sk_ref_sp(pathEffect->getPathEffect())); + paint->setPathEffect(pathEffect->refPathEffect()); if (shader == nullptr) paint->setShader(nullptr); else if (shader != (SkDrawShader*) -1) - paint->setShader(sk_ref_sp(shader->getShader())); + paint->setShader(shader->refShader()); if (strikeThru != -1) paint->setStrikeThruText(SkToBool(strikeThru)); if (strokeCap != -1) diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 4716053197..8bcc421432 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -485,7 +485,7 @@ public: * draw onto the previous layer using the xfermode from the original paint. */ SkPaint tmp; - tmp.setImageFilter(sk_ref_sp(fPaint->getImageFilter())); + tmp.setImageFilter(fPaint->refImageFilter()); tmp.setBlendMode(fPaint->getBlendMode()); SkRect storage; if (rawBounds) { @@ -1180,7 +1180,7 @@ static SkImageInfo make_layer_info(const SkImageInfo& prev, int w, int h, bool i return SkImageInfo::MakeN32(w, h, alphaType); } else { // keep the same characteristics as the prev - return SkImageInfo::Make(w, h, prev.colorType(), alphaType, sk_ref_sp(prev.colorSpace())); + return SkImageInfo::Make(w, h, prev.colorType(), alphaType, prev.refColorSpace()); } } diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp index 2f3dd3eccd..f9f9a28aeb 100644 --- a/src/core/SkDraw.cpp +++ b/src/core/SkDraw.cpp @@ -1648,7 +1648,7 @@ void SkDraw::drawPosText_asPaths(const char text[], size_t byteLength, // Now restore the original settings, so we "draw" with whatever style/stroking. paint.setStyle(origPaint.getStyle()); - paint.setPathEffect(sk_ref_sp(origPaint.getPathEffect())); + paint.setPathEffect(origPaint.refPathEffect()); while (text < stop) { const SkGlyph& glyph = glyphCacheProc(cache.get(), &text); diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index fb89a67127..ea33d5b6c9 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -184,6 +184,17 @@ bool operator==(const SkPaint& a, const SkPaint& b) { #undef EQUAL } +#define DEFINE_REF_FOO(type) sk_sp<Sk##type> SkPaint::ref##type() const { return f##type; } +DEFINE_REF_FOO(ColorFilter) +DEFINE_REF_FOO(DrawLooper) +DEFINE_REF_FOO(ImageFilter) +DEFINE_REF_FOO(MaskFilter) +DEFINE_REF_FOO(PathEffect) +DEFINE_REF_FOO(Rasterizer) +DEFINE_REF_FOO(Shader) +DEFINE_REF_FOO(Typeface) +#undef DEFINE_REF_FOO + void SkPaint::reset() { SkPaint init; *this = init; @@ -2244,12 +2255,12 @@ SkTextBaseIter::SkTextBaseIter(const char text[], size_t length, sk_sp<SkPathEffect> pe; if (!applyStrokeAndPathEffects) { - style = paint.getStyle(); // restore - pe = sk_ref_sp(paint.getPathEffect()); // restore + style = paint.getStyle(); // restore + pe = paint.refPathEffect(); // restore } fPaint.setStyle(style); fPaint.setPathEffect(pe); - fPaint.setMaskFilter(sk_ref_sp(paint.getMaskFilter())); // restore + fPaint.setMaskFilter(paint.refMaskFilter()); // restore // now compute fXOffset if needed diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp index e72d137c7b..737cdf6cc2 100644 --- a/src/effects/SkLayerDrawLooper.cpp +++ b/src/effects/SkLayerDrawLooper.cpp @@ -92,16 +92,16 @@ void SkLayerDrawLooper::LayerDrawLooperContext::ApplyInfo( } if (bits & kPathEffect_Bit) { - dst->setPathEffect(sk_ref_sp(src.getPathEffect())); + dst->setPathEffect(src.refPathEffect()); } if (bits & kMaskFilter_Bit) { - dst->setMaskFilter(sk_ref_sp(src.getMaskFilter())); + dst->setMaskFilter(src.refMaskFilter()); } if (bits & kShader_Bit) { - dst->setShader(sk_ref_sp(src.getShader())); + dst->setShader(src.refShader()); } if (bits & kColorFilter_Bit) { - dst->setColorFilter(sk_ref_sp(src.getColorFilter())); + dst->setColorFilter(src.refColorFilter()); } if (bits & kXfermode_Bit) { dst->setBlendMode(src.getBlendMode()); diff --git a/src/gpu/text/GrTextUtils.cpp b/src/gpu/text/GrTextUtils.cpp index 5793aded67..548d4aa27e 100644 --- a/src/gpu/text/GrTextUtils.cpp +++ b/src/gpu/text/GrTextUtils.cpp @@ -524,7 +524,7 @@ void GrTextUtils::DrawPosTextAsPath(GrContext* context, // Now restore the original settings, so we "draw" with whatever style/stroking. paint.setStyle(origPaint.getStyle()); - paint.setPathEffect(sk_ref_sp(origPaint.getPathEffect())); + paint.setPathEffect(origPaint.refPathEffect()); while (text < stop) { const SkGlyph& glyph = glyphCacheProc(cache, &text); diff --git a/src/svg/SkSVGDevice.cpp b/src/svg/SkSVGDevice.cpp index 09bd09bf2e..06679daf9e 100644 --- a/src/svg/SkSVGDevice.cpp +++ b/src/svg/SkSVGDevice.cpp @@ -535,8 +535,7 @@ void SkSVGDevice::AutoElement::addTextAttributes(const SkPaint& paint) { SkString familyName; SkTHashSet<SkString> familySet; - sk_sp<const SkTypeface> tface(paint.getTypeface() ? - sk_ref_sp(paint.getTypeface()) : SkTypeface::MakeDefault()); + sk_sp<SkTypeface> tface(paint.getTypeface() ? paint.refTypeface() : SkTypeface::MakeDefault()); SkASSERT(tface); SkTypeface::Style style = tface->style(); diff --git a/tests/FontHostStreamTest.cpp b/tests/FontHostStreamTest.cpp index efb1453487..7c4cb67b00 100644 --- a/tests/FontHostStreamTest.cpp +++ b/tests/FontHostStreamTest.cpp @@ -87,8 +87,8 @@ DEF_TEST(FontHostStream, reporter) { drawBG(&origCanvas); origCanvas.drawText("A", 1, point.fX, point.fY, paint); - sk_sp<SkTypeface> typeface(SkToBool(paint.getTypeface()) ? sk_ref_sp(paint.getTypeface()) - : SkTypeface::MakeDefault()); + sk_sp<SkTypeface> typeface(paint.getTypeface() ? paint.refTypeface() + : SkTypeface::MakeDefault()); int ttcIndex; std::unique_ptr<SkStreamAsset> fontData(typeface->openStream(&ttcIndex)); sk_sp<SkTypeface> streamTypeface(SkTypeface::MakeFromStream(fontData.release())); |