diff options
author | 2015-10-06 12:59:55 -0700 | |
---|---|---|
committer | 2015-10-06 12:59:55 -0700 | |
commit | 95376a0dde3cdf414eb97a20cef3af19ed7e0151 (patch) | |
tree | b304b560eec5feed75d621c1aa3ec9a7df2573d9 /include/effects/SkMergeImageFilter.h | |
parent | ccb88bcab03c2d7450b25f614b9203b8b9d7640d (diff) |
Revert of factories should return baseclass, allowing the impl to specialize (patchset #4 id:60001 of https://codereview.chromium.org/1390523005/ )
Reason for revert:
Breaks Chrome with this link error: ../../third_party/skia/include/effects/SkMorphologyImageFilter.h:75: error: undefined reference to 'SkMorphologyImageFilter::SkMorphologyImageFilter(int, int, SkImageFilter*, SkImageFilter::CropRect const*)'
../../third_party/skia/include/effects/SkMorphologyImageFilter.h:104: error: undefined reference to 'SkMorphologyImageFilter::SkMorphologyImageFilter(int, int, SkImageFilter*, SkImageFilter::CropRect const*)'
Presumably due to code in third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp that contains:
#include "SkMorphologyImageFilter.h"
...
if (m_type == FEMORPHOLOGY_OPERATOR_DILATE)
return adoptRef(SkDilateImageFilter::Create(radiusX, radiusY, input.get(), &rect));
return adoptRef(SkErodeImageFilter::Create(radiusX, radiusY, input.get(), &rect));
Original issue's description:
> factories should return baseclass, allowing the impl to specialize
>
> waiting on https://codereview.chromium.org/1386163002/# to land
>
> BUG=skia:4424
>
> Committed: https://skia.googlesource.com/skia/+/80a6dcaa1b757826ed7414f64b035d512d9ccbf8
TBR=senorblanco@google.com,robertphillips@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4424
Review URL: https://codereview.chromium.org/1389063002
Diffstat (limited to 'include/effects/SkMergeImageFilter.h')
-rw-r--r-- | include/effects/SkMergeImageFilter.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/include/effects/SkMergeImageFilter.h b/include/effects/SkMergeImageFilter.h index 10c29131ed..714a755021 100644 --- a/include/effects/SkMergeImageFilter.h +++ b/include/effects/SkMergeImageFilter.h @@ -16,17 +16,16 @@ class SK_API SkMergeImageFilter : public SkImageFilter { public: virtual ~SkMergeImageFilter(); - static SkImageFilter* Create(SkImageFilter* first, SkImageFilter* second, - SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode, - const CropRect* cropRect = NULL) { + static SkMergeImageFilter* Create(SkImageFilter* first, SkImageFilter* second, + SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode, + const CropRect* cropRect = NULL) { SkImageFilter* inputs[2] = { first, second }; SkXfermode::Mode modes[2] = { mode, mode }; return new SkMergeImageFilter(inputs, 2, modes, cropRect); } - - static SkImageFilter* Create(SkImageFilter* filters[], int count, - const SkXfermode::Mode modes[] = NULL, - const CropRect* cropRect = NULL) { + static SkMergeImageFilter* Create(SkImageFilter* filters[], int count, + const SkXfermode::Mode modes[] = NULL, + const CropRect* cropRect = NULL) { return new SkMergeImageFilter(filters, count, modes, cropRect); } @@ -34,15 +33,16 @@ public: SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMergeImageFilter) protected: + SkMergeImageFilter(SkImageFilter* filters[], int count, + const SkXfermode::Mode modes[], + const CropRect* cropRect); void flatten(SkWriteBuffer&) const override; - bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, SkBitmap* result, - SkIPoint* loc) const override; -private: - SkMergeImageFilter(SkImageFilter* filters[], int count, const SkXfermode::Mode modes[], - const CropRect* cropRect); + virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, + SkBitmap* result, SkIPoint* loc) const override; - uint8_t* fModes; // SkXfermode::Mode +private: + uint8_t* fModes; // SkXfermode::Mode // private storage, to avoid dynamically allocating storage for our copy // of the modes (unless the count is so large we can't fit). |