| Index: src/effects/SkTableColorFilter.cpp
|
| diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp
|
| index 85e3a317bb733708bb8d444959d13474dfc0f6da..57b2b1daa614655fd072166b547d51d5ef39b846 100644
|
| --- a/src/effects/SkTableColorFilter.cpp
|
| +++ b/src/effects/SkTableColorFilter.cpp
|
| @@ -48,8 +48,8 @@ public:
|
| SkColorFilter* newComposed(const SkColorFilter* inner) const override;
|
|
|
| #if SK_SUPPORT_GPU
|
| - bool asFragmentProcessors(GrContext*, GrProcessorDataManager*,
|
| - SkTDArray<const GrFragmentProcessor*>*) const override;
|
| + const GrFragmentProcessor* asFragmentProcessor(GrContext*,
|
| + GrProcessorDataManager*) const override;
|
| #endif
|
|
|
| void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) const override;
|
| @@ -340,7 +340,7 @@ SkColorFilter* SkTable_ColorFilter::newComposed(const SkColorFilter* innerFilter
|
|
|
| class ColorTableEffect : public GrFragmentProcessor {
|
| public:
|
| - static GrFragmentProcessor* Create(GrContext* context, SkBitmap bitmap, unsigned flags);
|
| + static const GrFragmentProcessor* Create(GrContext* context, SkBitmap bitmap, unsigned flags);
|
|
|
| virtual ~ColorTableEffect();
|
|
|
| @@ -461,7 +461,8 @@ void GLColorTableEffect::emitCode(EmitArgs& args) {
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| -GrFragmentProcessor* ColorTableEffect::Create(GrContext* context, SkBitmap bitmap, unsigned flags) {
|
| +const GrFragmentProcessor* ColorTableEffect::Create(GrContext* context, SkBitmap bitmap,
|
| + unsigned flags) {
|
|
|
| GrTextureStripAtlas::Desc desc;
|
| desc.fWidth = bitmap.width();
|
| @@ -563,31 +564,17 @@ const GrFragmentProcessor* ColorTableEffect::TestCreate(GrProcessorTestData* d)
|
| (flags & (1 << 3)) ? luts[3] : nullptr
|
| ));
|
|
|
| - SkTDArray<const GrFragmentProcessor*> array;
|
| - if (filter->asFragmentProcessors(d->fContext, d->fProcDataManager, &array)) {
|
| - SkASSERT(1 == array.count()); // TableColorFilter only returns 1
|
| - return array[0];
|
| - }
|
| - return nullptr;
|
| + const GrFragmentProcessor* fp = filter->asFragmentProcessor(d->fContext, d->fProcDataManager);
|
| + SkASSERT(fp);
|
| + return fp;
|
| }
|
|
|
| -bool SkTable_ColorFilter::asFragmentProcessors(GrContext* context,
|
| - GrProcessorDataManager*,
|
| - SkTDArray<const GrFragmentProcessor*>* array) const {
|
| +const GrFragmentProcessor* SkTable_ColorFilter::asFragmentProcessor(GrContext* context,
|
| + GrProcessorDataManager*) const {
|
| SkBitmap bitmap;
|
| this->asComponentTable(&bitmap);
|
|
|
| - GrFragmentProcessor* frag = ColorTableEffect::Create(context, bitmap, fFlags);
|
| - if (frag) {
|
| - if (array) {
|
| - *array->append() = frag;
|
| - } else {
|
| - frag->unref();
|
| - SkDEBUGCODE(frag = nullptr;)
|
| - }
|
| - return true;
|
| - }
|
| - return false;
|
| + return ColorTableEffect::Create(context, bitmap, fFlags);
|
| }
|
|
|
| #endif // SK_SUPPORT_GPU
|
|
|