From f028003cf4429813ae1ac6624efa51ecbb062ed3 Mon Sep 17 00:00:00 2001 From: reed Date: Mon, 12 Oct 2015 11:10:10 -0700 Subject: change more effects to only expose factories BUG=skia: TBR= Review URL: https://codereview.chromium.org/1395403002 --- include/effects/SkColorFilterImageFilter.h | 14 ++++++-------- include/effects/SkModeColorFilter.h | 14 +++++++++----- src/effects/SkColorFilterImageFilter.cpp | 4 ++-- src/effects/SkColorFilters.cpp | 2 +- tests/ImageFilterTest.cpp | 7 +++---- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/include/effects/SkColorFilterImageFilter.h b/include/effects/SkColorFilterImageFilter.h index f23f16dfd1..200ec86500 100644 --- a/include/effects/SkColorFilterImageFilter.h +++ b/include/effects/SkColorFilterImageFilter.h @@ -14,20 +14,16 @@ class SkColorFilter; class SK_API SkColorFilterImageFilter : public SkImageFilter { public: - static SkColorFilterImageFilter* Create(SkColorFilter* cf, - SkImageFilter* input = NULL, - const CropRect* cropRect = NULL); - virtual ~SkColorFilterImageFilter(); + static SkImageFilter* Create(SkColorFilter* cf, SkImageFilter* input = NULL, + const CropRect* cropRect = NULL); SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorFilterImageFilter) protected: void flatten(SkWriteBuffer&) const override; - - virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, - SkBitmap* result, SkIPoint* loc) const override; - + bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, SkBitmap* result, + SkIPoint* loc) const override; bool onIsColorFilterNode(SkColorFilter**) const override; bool affectsTransparentBlack() const override; @@ -35,6 +31,8 @@ private: SkColorFilterImageFilter(SkColorFilter* cf, SkImageFilter* input, const CropRect* cropRect); + virtual ~SkColorFilterImageFilter(); + SkColorFilter* fColorFilter; typedef SkImageFilter INHERITED; diff --git a/include/effects/SkModeColorFilter.h b/include/effects/SkModeColorFilter.h index 0c876aef0b..06eec43572 100644 --- a/include/effects/SkModeColorFilter.h +++ b/include/effects/SkModeColorFilter.h @@ -15,11 +15,9 @@ class SkModeColorFilter : public SkColorFilter { public: - SkModeColorFilter(SkColor color, SkXfermode::Mode mode) { - fColor = color; - fMode = mode; - this->updateCache(); - }; + static SkColorFilter* Create(SkColor color, SkXfermode::Mode mode) { + return new SkModeColorFilter(color, mode); + } SkColor getColor() const { return fColor; } SkXfermode::Mode getMode() const { return fMode; } @@ -44,6 +42,12 @@ public: SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter) protected: + SkModeColorFilter(SkColor color, SkXfermode::Mode mode) { + fColor = color; + fMode = mode; + this->updateCache(); + }; + void flatten(SkWriteBuffer&) const override; private: diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index e5f64ce2f9..46bad10ce3 100644 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -15,8 +15,8 @@ #include "SkTableColorFilter.h" #include "SkWriteBuffer.h" -SkColorFilterImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf, - SkImageFilter* input, const CropRect* cropRect) { +SkImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf, SkImageFilter* input, + const CropRect* cropRect) { if (nullptr == cf) { return nullptr; } diff --git a/src/effects/SkColorFilters.cpp b/src/effects/SkColorFilters.cpp index 1e34b1e5c3..4515c0d3fe 100644 --- a/src/effects/SkColorFilters.cpp +++ b/src/effects/SkColorFilters.cpp @@ -166,7 +166,7 @@ SkColorFilter* SkColorFilter::CreateModeFilter(SkColor color, SkXfermode::Mode m case SkXfermode::kSrcOver_Mode: return new SrcOver_SkModeColorFilter(color); default: - return new SkModeColorFilter(color, mode); + return SkModeColorFilter::Create(color, mode); } } diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index f83d315c4d..6b9064e3b4 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -904,7 +904,7 @@ DEF_TEST(ImageFilterEmptySaveLayer, reporter) { SkAutoTUnref green( SkColorFilter::CreateModeFilter(SK_ColorGREEN, SkXfermode::kSrc_Mode)); - SkAutoTUnref imageFilter( + SkAutoTUnref imageFilter( SkColorFilterImageFilter::Create(green.get())); SkPaint imageFilterPaint; imageFilterPaint.setImageFilter(imageFilter.get()); @@ -1027,10 +1027,9 @@ static void test_xfermode_cropped_input(SkCanvas* canvas, skiatest::Reporter* re SkAutoTUnref green( SkColorFilter::CreateModeFilter(SK_ColorGREEN, SkXfermode::kSrcIn_Mode)); - SkAutoTUnref greenFilter( - SkColorFilterImageFilter::Create(green.get())); + SkAutoTUnref greenFilter(SkColorFilterImageFilter::Create(green.get())); SkImageFilter::CropRect cropRect(SkRect::MakeEmpty()); - SkAutoTUnref croppedOut( + SkAutoTUnref croppedOut( SkColorFilterImageFilter::Create(green.get(), nullptr, &cropRect)); // Check that an xfermode image filter whose input has been cropped out still draws the other -- cgit v1.2.3