diff options
Diffstat (limited to 'src/effects')
-rw-r--r-- | src/effects/SkBlurDrawLooper.cpp | 4 | ||||
-rw-r--r-- | src/effects/SkColorCubeFilter.cpp | 18 | ||||
-rw-r--r-- | src/effects/SkColorFilterImageFilter.cpp | 18 | ||||
-rw-r--r-- | src/effects/SkColorMatrixFilter.cpp | 4 | ||||
-rw-r--r-- | src/effects/SkDropShadowImageFilter.cpp | 4 | ||||
-rw-r--r-- | src/effects/SkLayerDrawLooper.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkLumaColorFilter.cpp | 4 | ||||
-rw-r--r-- | src/effects/SkTableColorFilter.cpp | 24 |
8 files changed, 42 insertions, 36 deletions
diff --git a/src/effects/SkBlurDrawLooper.cpp b/src/effects/SkBlurDrawLooper.cpp index c8e20e1265..d8127eba4e 100644 --- a/src/effects/SkBlurDrawLooper.cpp +++ b/src/effects/SkBlurDrawLooper.cpp @@ -44,7 +44,8 @@ void SkBlurDrawLooper::initEffects() { // be baked into the blurred mask. SkColor opaqueColor = SkColorSetA(fBlurColor, 255); //The SrcIn xfer mode will multiply 'color' by the incoming alpha - fColorFilter = SkColorFilter::MakeModeFilter(opaqueColor, SkXfermode::kSrcIn_Mode); + fColorFilter = SkColorFilter::CreateModeFilter(opaqueColor, + SkXfermode::kSrcIn_Mode); } else { fColorFilter = nullptr; } @@ -80,6 +81,7 @@ void SkBlurDrawLooper::flatten(SkWriteBuffer& buffer) const { SkBlurDrawLooper::~SkBlurDrawLooper() { SkSafeUnref(fBlur); + SkSafeUnref(fColorFilter); } bool SkBlurDrawLooper::asABlurShadow(BlurShadowRec* rec) const { diff --git a/src/effects/SkColorCubeFilter.cpp b/src/effects/SkColorCubeFilter.cpp index d80a02fef2..d59f123a80 100644 --- a/src/effects/SkColorCubeFilter.cpp +++ b/src/effects/SkColorCubeFilter.cpp @@ -48,19 +48,19 @@ static bool is_valid_3D_lut(SkData* cubeData, int cubeDimension) { (nullptr != cubeData) && (cubeData->size() >= minMemorySize); } -sk_sp<SkColorFilter> SkColorCubeFilter::Make(sk_sp<SkData> cubeData, int cubeDimension) { - if (!is_valid_3D_lut(cubeData.get(), cubeDimension)) { +SkColorFilter* SkColorCubeFilter::Create(SkData* cubeData, int cubeDimension) { + if (!is_valid_3D_lut(cubeData, cubeDimension)) { return nullptr; } - return sk_sp<SkColorFilter>(new SkColorCubeFilter(std::move(cubeData), cubeDimension)); + return new SkColorCubeFilter(cubeData, cubeDimension); } -SkColorCubeFilter::SkColorCubeFilter(sk_sp<SkData> cubeData, int cubeDimension) - : fCubeData(std::move(cubeData)) - , fUniqueID(SkNextColorCubeUniqueID()) - , fCache(cubeDimension) -{} +SkColorCubeFilter::SkColorCubeFilter(SkData* cubeData, int cubeDimension) + : fCubeData(SkRef(cubeData)) + , fUniqueID(SkNextColorCubeUniqueID()) + , fCache(cubeDimension) { +} uint32_t SkColorCubeFilter::getFlags() const { return this->INHERITED::getFlags() | kAlphaUnchanged_Flag; @@ -142,7 +142,7 @@ SkFlattenable* SkColorCubeFilter::CreateProc(SkReadBuffer& buffer) { if (!buffer.validate(is_valid_3D_lut(cubeData.get(), cubeDimension))) { return nullptr; } - return Make(std::move(cubeData), cubeDimension).release(); + return Create(cubeData.get(), cubeDimension); } void SkColorCubeFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 6eb66533d9..96ce5d9690 100644 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -25,10 +25,10 @@ SkImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf, SkImageFilter if (input && input->isColorFilterNode(&inputCF)) { // This is an optimization, as it collapses the hierarchy by just combining the two // colorfilters into a single one, which the new imagefilter will wrap. - sk_sp<SkColorFilter> newCF(SkColorFilter::MakeComposeFilter(sk_ref_sp(cf), - sk_sp<SkColorFilter>(inputCF))); + SkAutoUnref autoUnref(inputCF); + SkAutoTUnref<SkColorFilter> newCF(SkColorFilter::CreateComposeFilter(cf, inputCF)); if (newCF) { - return new SkColorFilterImageFilter(newCF.get(), input->getInput(0), cropRect); + return new SkColorFilterImageFilter(newCF, input->getInput(0), cropRect); } } @@ -42,13 +42,17 @@ SkColorFilterImageFilter::SkColorFilterImageFilter(SkColorFilter* cf, SkFlattenable* SkColorFilterImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); - sk_sp<SkColorFilter> cf(buffer.readColorFilter()); - return Create(cf.get(), common.getInput(0), &common.cropRect()); + SkAutoTUnref<SkColorFilter> cf(buffer.readColorFilter()); + return Create(cf, common.getInput(0), &common.cropRect()); } void SkColorFilterImageFilter::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); - buffer.writeFlattenable(fColorFilter.get()); + buffer.writeFlattenable(fColorFilter); +} + +SkColorFilterImageFilter::~SkColorFilterImageFilter() { + fColorFilter->unref(); } bool SkColorFilterImageFilter::onFilterImageDeprecated(Proxy* proxy, const SkBitmap& source, @@ -90,7 +94,7 @@ bool SkColorFilterImageFilter::onIsColorFilterNode(SkColorFilter** filter) const SkASSERT(1 == this->countInputs()); if (!this->cropRectIsSet()) { if (filter) { - *filter = SkRef(fColorFilter.get()); + *filter = SkRef(fColorFilter); } return true; } diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp index 82bd45b73d..e122b6ac8e 100644 --- a/src/effects/SkColorMatrixFilter.cpp +++ b/src/effects/SkColorMatrixFilter.cpp @@ -16,7 +16,7 @@ static SkScalar byte_to_scale(U8CPU byte) { } } -sk_sp<SkColorFilter> SkColorMatrixFilter::MakeLightingFilter(SkColor mul, SkColor add) { +SkColorFilter* SkColorMatrixFilter::CreateLightingFilter(SkColor mul, SkColor add) { SkColorMatrix matrix; matrix.setScale(byte_to_scale(SkColorGetR(mul)), byte_to_scale(SkColorGetG(mul)), @@ -26,5 +26,5 @@ sk_sp<SkColorFilter> SkColorMatrixFilter::MakeLightingFilter(SkColor mul, SkColo SkIntToScalar(SkColorGetG(add)), SkIntToScalar(SkColorGetB(add)), 0); - return SkColorFilter::MakeMatrixFilterRowMajor255(matrix.fMat); + return SkColorMatrixFilter::Create(matrix); } diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/SkDropShadowImageFilter.cpp index e32b89ee6d..deece35b38 100644 --- a/src/effects/SkDropShadowImageFilter.cpp +++ b/src/effects/SkDropShadowImageFilter.cpp @@ -79,9 +79,11 @@ bool SkDropShadowImageFilter::onFilterImageDeprecated(Proxy* proxy, const SkBitm sigma.fX = SkMaxScalar(0, sigma.fX); sigma.fY = SkMaxScalar(0, sigma.fY); SkAutoTUnref<SkImageFilter> blurFilter(SkBlurImageFilter::Create(sigma.fX, sigma.fY)); + SkAutoTUnref<SkColorFilter> colorFilter( + SkColorFilter::CreateModeFilter(fColor, SkXfermode::kSrcIn_Mode)); SkPaint paint; paint.setImageFilter(blurFilter.get()); - paint.setColorFilter(SkColorFilter::MakeModeFilter(fColor, SkXfermode::kSrcIn_Mode)); + paint.setColorFilter(colorFilter.get()); paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); SkVector offsetVec = SkVector::Make(fDx, fDy); ctx.ctm().mapVectors(&offsetVec, 1); diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp index 8510767801..ae31482ae7 100644 --- a/src/effects/SkLayerDrawLooper.cpp +++ b/src/effects/SkLayerDrawLooper.cpp @@ -102,7 +102,7 @@ void SkLayerDrawLooper::LayerDrawLooperContext::ApplyInfo( dst->setShader(src.getShader()); } if (bits & kColorFilter_Bit) { - dst->setColorFilter(sk_ref_sp(src.getColorFilter())); + dst->setColorFilter(src.getColorFilter()); } if (bits & kXfermode_Bit) { dst->setXfermode(src.getXfermode()); diff --git a/src/effects/SkLumaColorFilter.cpp b/src/effects/SkLumaColorFilter.cpp index 18b2485a30..0ca6342d56 100644 --- a/src/effects/SkLumaColorFilter.cpp +++ b/src/effects/SkLumaColorFilter.cpp @@ -37,9 +37,7 @@ void SkLumaColorFilter::filterSpan(const SkPMColor src[], int count, } } -sk_sp<SkColorFilter> SkLumaColorFilter::Make() { - return sk_sp<SkColorFilter>(new SkLumaColorFilter); -} +SkColorFilter* SkLumaColorFilter::Create() { return new SkLumaColorFilter; } SkLumaColorFilter::SkLumaColorFilter() : INHERITED() {} diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp index 4ce0b4bb0e..5ae175ffca 100644 --- a/src/effects/SkTableColorFilter.cpp +++ b/src/effects/SkTableColorFilter.cpp @@ -46,7 +46,7 @@ public: virtual ~SkTable_ColorFilter() { delete fBitmap; } bool asComponentTable(SkBitmap* table) const override; - sk_sp<SkColorFilter> makeComposed(sk_sp<SkColorFilter> inner) const override; + SkColorFilter* newComposed(const SkColorFilter* inner) const override; #if SK_SUPPORT_GPU const GrFragmentProcessor* asFragmentProcessor(GrContext*) const override; @@ -251,7 +251,7 @@ SkFlattenable* SkTable_ColorFilter::CreateProc(SkReadBuffer& buffer) { b = ptr; ptr += 256; } - return SkTableColorFilter::MakeARGB(a, r, g, b).release(); + return SkTableColorFilter::CreateARGB(a, r, g, b); } bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const { @@ -287,7 +287,7 @@ static void combine_tables(uint8_t res[256], const uint8_t outer[256], const uin } } -sk_sp<SkColorFilter> SkTable_ColorFilter::makeComposed(sk_sp<SkColorFilter> innerFilter) const { +SkColorFilter* SkTable_ColorFilter::newComposed(const SkColorFilter* innerFilter) const { SkBitmap innerBM; if (!innerFilter->asComponentTable(&innerBM)) { return nullptr; @@ -326,7 +326,7 @@ sk_sp<SkColorFilter> SkTable_ColorFilter::makeComposed(sk_sp<SkColorFilter> inne combine_tables(concatG, tableG, innerBM.getAddr8(0, 2)); combine_tables(concatB, tableB, innerBM.getAddr8(0, 3)); - return SkTableColorFilter::MakeARGB(concatA, concatR, concatG, concatB); + return SkTableColorFilter::CreateARGB(concatA, concatR, concatG, concatB); } #if SK_SUPPORT_GPU @@ -554,7 +554,7 @@ const GrFragmentProcessor* ColorTableEffect::TestCreate(GrProcessorTestData* d) } } } - auto filter(SkTableColorFilter::MakeARGB( + SkAutoTUnref<SkColorFilter> filter(SkTableColorFilter::CreateARGB( (flags & (1 << 0)) ? luts[0] : nullptr, (flags & (1 << 1)) ? luts[1] : nullptr, (flags & (1 << 2)) ? luts[2] : nullptr, @@ -587,15 +587,15 @@ const GrFragmentProcessor* SkTable_ColorFilter::asFragmentProcessor(GrContext* c /////////////////////////////////////////////////////////////////////////////// -sk_sp<SkColorFilter> SkTableColorFilter::Make(const uint8_t table[256]) { - return sk_make_sp<SkTable_ColorFilter>(table, table, table, table); +SkColorFilter* SkTableColorFilter::Create(const uint8_t table[256]) { + return new SkTable_ColorFilter(table, table, table, table); } -sk_sp<SkColorFilter> SkTableColorFilter::MakeARGB(const uint8_t tableA[256], - const uint8_t tableR[256], - const uint8_t tableG[256], - const uint8_t tableB[256]) { - return sk_make_sp<SkTable_ColorFilter>(tableA, tableR, tableG, tableB); +SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], + const uint8_t tableR[256], + const uint8_t tableG[256], + const uint8_t tableB[256]) { + return new SkTable_ColorFilter(tableA, tableR, tableG, tableB); } SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) |