| Index: src/core/SkColorFilter.cpp
|
| diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
|
| index 4605a1d7ab8231c068d4fe48072b9ff81de4132c..25e6b2ea7389e7392823ca54cc034e30853cb46d 100644
|
| --- a/src/core/SkColorFilter.cpp
|
| +++ b/src/core/SkColorFilter.cpp
|
| @@ -13,7 +13,9 @@
|
| #include "SkUnPreMultiply.h"
|
| #include "SkWriteBuffer.h"
|
|
|
| -class GrFragmentProcessor;
|
| +#if SK_SUPPORT_GPU
|
| +#include "GrFragmentProcessor.h"
|
| +#endif
|
|
|
| bool SkColorFilter::asColorMode(SkColor* color, SkXfermode::Mode* mode) const {
|
| return false;
|
| @@ -67,11 +69,15 @@ public:
|
| #endif
|
|
|
| #if SK_SUPPORT_GPU
|
| - bool asFragmentProcessors(GrContext* context, GrProcessorDataManager* procDataManager,
|
| - SkTDArray<const GrFragmentProcessor*>* array) const override {
|
| - bool hasFrags = fInner->asFragmentProcessors(context, procDataManager, array);
|
| - hasFrags |= fOuter->asFragmentProcessors(context, procDataManager, array);
|
| - return hasFrags;
|
| + const GrFragmentProcessor* asFragmentProcessor(GrContext* context,
|
| + GrProcessorDataManager* pdm) const override {
|
| + SkAutoTUnref<const GrFragmentProcessor> innerFP(fInner->asFragmentProcessor(context, pdm));
|
| + SkAutoTUnref<const GrFragmentProcessor> outerFP(fOuter->asFragmentProcessor(context, pdm));
|
| + if (!innerFP || !outerFP) {
|
| + return nullptr;
|
| + }
|
| + const GrFragmentProcessor* series[] = { innerFP, outerFP };
|
| + return GrFragmentProcessor::RunInSeries(series, 2);
|
| }
|
| #endif
|
|
|
|
|